【问题标题】:android:nextFocusDown doesn't workandroid:nextFocusDown 不起作用
【发布时间】:2026-02-23 22:05:01
【问题描述】:

我设计了一个包含四个 EditText 的布局,我想促进它们的导航。我了解android:nextFocusDown 的使用,但我无法让它工作。我还将“ImeOptions”设置为 actionNext,但在软板上我看不到正确的图标。

我的 XML sn-p:

            <EditText
                android:id="@+id/reservation_name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:background="@drawable/edit_text_reservation"
                android:ems="10"
                android:hint="@string/yourName"
                android:imeOptions="actionNext"
                android:nextFocusDown="@+id/reservation_surname" >

            </EditText>

            <EditText
                android:id="@+id/reservation_surname"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:background="@drawable/edit_text_reservation"
                android:ems="10"
                android:hint="@string/yourSurname"
                android:imeOptions="actionNext"
                android:nextFocusDown="@+id/reservation_email"
                android:nextFocusUp="@+id/reservation_surname" />

            <EditText
                android:id="@+id/reservation_email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="16dp"
                android:background="@drawable/edit_text_reservation"
                android:ems="10"
                android:hint="@string/yourEmail"
                android:imeOptions="actionNext"
                android:inputType="textEmailAddress"
                android:nextFocusDown="@+id/reservation_notes"
                android:nextFocusUp="@+id/reservation_email" />

           <EditText
                android:id="@+id/reservation_notes"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@drawable/edit_text_reservation"
                android:ems="10"
                android:imeOptions="actionDone"
                android:inputType="textMultiLine"
                android:nextFocusUp="@id/reservation_notes" />

【问题讨论】:

  • android:nextFocusRight替换android:nextFocusDown
  • 已经尝试过了,没有任何改变...
  • android:singleLine="true"
  • 哦,太好了...android:singleLine="true" 有效,但当我用作我的最后一个编辑文本android:inputType="textMultiLine" 时无效。可以合并吗?
  • 据我的记忆,Return/EnterNext/Done 在软键盘上的位置相同,所以从那个角度来看它是一个或另一个

标签: android android-edittext focus imeoptions


【解决方案1】:

我遇到了类似的问题,nextFocus* 根本不起作用。在你的情况下.. 从

<EditText android:id="@+id/reservation_name"...
          android:nextFocusDown="@+id/reservation_notes"

将姓氏的 id 更改为没有“+”,即 &lt;EditText android:id="@id/reservation_surname" 这样你 不创建对该标签的新引用。 这现在可以工作了。

【讨论】: