Android新启动Activity,dialog或者其他窗体中中包含EditText, 新启动的activity的焦点默认在EditText上,这是android系统会弹出软键盘,挤压activity本来的界面,影响美观。
因此最好在新窗体创建时,最好在onCreate()方法中将焦点放在另一个view上. view使用requestFocus()焦点,但是如果让button或者textView之类控件直接使用requestFocus()方法,则无法获取焦点,焦点会依然在editText上。
只能在使用View的requestFocus()方法之前调用下面2个方法,view才可获取焦点:
view.setFocusable(true);
view.setFocusableInTouchMode(true);
然后调用 requestFocus()即可获取焦点。
本文详细介绍了Android应用中,当启动新Activity时,如果焦点落在EditText上会导致软键盘弹出遮挡界面的问题。通过在新Activity的onCreate()方法中设置其他控件为焦点,可以避免此问题。具体操作包括调用view的setFocusable(true)、setFocusableInTouchMode(true),然后调用requestFocus()方法。

3481

被折叠的 条评论
为什么被折叠?



