在Android中,当一个活动开始时如何阻止EditText获得焦点?

发布时间 2023-10-29 21:23:30作者: 小满独家

内容来自 DOC https://q.houxu6.top/?s=在Android中,当一个活动开始时如何阻止EditText获得焦点?

在Android中,当一个活动开始时,有一个Activity包含两个元素:

  1. EditText
  2. ListView

当我的Activity启动时,EditText立即获得输入焦点(闪烁光标)。我不想在任何控件启动时获得输入焦点。我尝试过:

EditText.setSelected(false);
EditText.setFocusable(false);

没有效果。如何在启动时使EditText不要自己选择自己?


在父布局(例如LinearLayoutConstraintLayout)中添加标签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"/>