NextFocusRight 焦点不是向右,而是向下

问题描述 投票:0回答:2

我正在开发一个具有多个

edittext
的应用程序。 当
edittext
占据整个宽度时,
nextfocusdown
工作正常。 但是当有两个
edittext
处于相同高度时(每个编辑文本占据宽度的一半),我想将焦点从左边的一个转移到右边的一个。 但是当我在 xml 中写入
nextFocusRight="id/EDIT_RIGHT"
时,焦点不会转到右侧
edittext
而是转到左侧下方的
edittext

    <!-- EDIT LEFT-->
    <EditText
        android:id="@+id/EDIT_LEFT"
        android:layout_width="165dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp"
        android:hint="@string/edit_left_hint"
        android:nextFocusRight="@id/EDIT_RIGHT"
        tools:ignore="Autofill"/>

    <!-- EDIT RIGHT-->
    <EditText
        android:id="@+id/EDIT_RIGHT"
        android:layout_width="165dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:hint="@string/edit_right_hint"
        android:nextFocusDown="@id/EDIT_DOWN"
        tools:ignore="Autofill"/>
android android-layout
2个回答
2
投票

你必须这样使用 -

<!-- EDIT LEFT-->
    <EditText
        android:id="@+id/EDIT_LEFT"
        android:layout_width="165dp"
        android:layout_height="wrap_content"
        android:layout_marginEnd="10dp"
        android:hint="@string/edit_left_hint"
        android:imeOptions="actionNext"
        android:nextFocusRight="@+id/EDIT_RIGHT"
        tools:ignore="Autofill"/>

    <!-- EDIT RIGHT-->
    <EditText
        android:id="@+id/EDIT_RIGHT"
        android:layout_width="165dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="10dp"
        android:hint="@string/edit_rgiht_hint"
        android:imeOptions="actionNext"
        android:nextFocusDown="@id/EDIT_DOWN"
        tools:ignore="Autofill"/>

您应该使用 android:nextFocusRight="@+id/EDIT_RIGHT" 而不是 android:nextFocusRight="@id/EDIT_RIGHT" 因为您在创建它之前使用此 edittext 并使用 imeOptions。


0
投票

使用 android:nextFocusDown="@id/EDIT_DOWN" 使用 android:nextFocusForward="@+id/EDIT_DOWN"

 <EditText
                    android:layout_width="250dp"
                    android:layout_height="@dimen/edt_height"
                    android:background="@drawable/edt_back_shape"
                    android:hint="Enter email"
                    android:layout_marginStart="@dimen/size_5dp"
                    android:text="@={viewmodel.email,default=``}"
                    android:paddingStart="@dimen/size_10dp"
                    android:id="@+id/emailEdt"
                    android:inputType="textEmailAddress"
                    android:imeOptions="actionNext"
                    android:nextFocusForward="@+id/websiteEdt"
                    android:textSize="@dimen/form_edt_text_sizes"
                    app:layout_constraintStart_toEndOf="@+id/stNoEdt"
                    app:layout_constraintTop_toBottomOf="@+id/emailTitle"
                    android:fontFamily="@font/poppins_light"
                    />
© www.soinside.com 2019 - 2024. All rights reserved.