内容来自 DOC https://q.houxu6.top/?s=在Android中,当一个活动开始时如何阻止EditText获得焦点?
在Android中,当一个活动开始时,有一个Activity
包含两个元素:
EditText
ListView
当我的Activity
启动时,EditText
立即获得输入焦点(闪烁光标)。我不想在任何控件启动时获得输入焦点。我尝试过:
EditText.setSelected(false);
EditText.setFocusable(false);
没有效果。如何在启动时使EditText
不要自己选择自己?
在父布局(例如LinearLayout
或ConstraintLayout
)中添加标签android:focusableInTouchMode="true"
和android:focusable="true"
,就像下面的例子一样,将修复问题。
<!-- 防止AutoCompleteTextView获得焦点的虚拟项 -->
<LinearLayout
android:focusable="true"
android:focusableInTouchMode="true"
android:layout_width="0px"
android:layout_height="0px"/>
<!-- 此组件的id已经被设置为:nextFocusUp和nextFocusLeft,以防止虚拟项再次获得焦点 -->
<AutoCompleteTextView android:id="@+id/autotext"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:nextFocusUp="@id/autotext"
android:nextFocusLeft="@id/autotext"/>