imeOption =" actionNext"不在TextInputLayout中工作。

时间:2017-05-04 09:12:36

标签: android xml android-layout android-textinputlayout

我正在使用材料设计中的浮动提示。我希望将焦点从一个EditText转移到下一个,所以我放了imeOptions =" actionNext"在所有editTexts和imeOptions =" actionDone"在最后一个EditText中。 但重点不是转移到下一个EditText。 以下是我的xml的片段。

 <android.support.design.widget.TextInputLayout
                        android:id="@+id/streetWrapper"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:theme="@style/TextInputStyle"
                        >

                        <EditText

                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Street/Locality *"
                            android:imeOptions="actionNext"
                            android:maxLines="1"

                            />

                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:id="@+id/flatWrapper"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="@dimen/_10sdp"
                        android:theme="@style/TextInputStyle">

                        <EditText

                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Building Name / Flat Number*"
                            android:imeOptions="actionNext"
                            android:maxLines="1"
                            />

                    </android.support.design.widget.TextInputLayout>

4 个答案:

答案 0 :(得分:14)

您应该在 android:imeOptions="actionNext" 部分添加 EditText

<android.support.design.widget.TextInputLayout
                    android:id="@+id/streetWrapper"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:theme="@style/TextInputStyle"
                    >

                    <EditText
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:imeOptions="actionNext"
                        android:maxLines="1"
                        android:inputType="text"
                        />

 </android.support.design.widget.TextInputLayout>

答案 1 :(得分:3)

将属性android:inputType="text"添加到EditText

试试这个:

<android.support.design.widget.TextInputLayout
    android:id="@+id/streetWrapper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Street/Locality *"
        android:imeOptions="actionNext"
        android:maxLines="1"
        android:inputType="text"/>

</android.support.design.widget.TextInputLayout>

<android.support.design.widget.TextInputLayout
    android:id="@+id/flatWrapper"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginTop="@dimen/_10sdp">

    <EditText

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Building Name / Flat Number*"
        android:imeOptions="actionNext"
        android:maxLines="1"
        android:inputType="text"/>

</android.support.design.widget.TextInputLayout>

答案 2 :(得分:1)

您应在标签部分添加 android:inputType =“ text”

如果不添加inputType,则imeOption不起作用

尝试一下:

<android.support.design.widget.TextInputLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="@dimen/dimens_16dp">

                    <android.support.design.widget.TextInputEditText
                        android:id="@+id/et_impian"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:hint="@string/text_fill_your_dream_here"
                        android:imeOptions="actionNext"
                        android:inputType="text"
                        android:backgroundTint="@color/color_green_manulife"/>

                </android.support.design.widget.TextInputLayout>

答案 3 :(得分:0)

就我而言,我还必须添加android:nextFocusForward="@id/secondInput"。确保您在TextInputEditText而不是TextInputLayout上添加ID。

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="First input">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/firstInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:imeOptions="actionNext"
        android:inputType="number"
        android:nextFocusForward="@id/secondInput">

        <requestFocus />
    </com.google.android.material.textfield.TextInputEditText>
</com.google.android.material.textfield.TextInputLayout>

<com.google.android.material.textfield.TextInputLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Second input">

    <com.google.android.material.textfield.TextInputEditText
        android:id="@+id/secondInput"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:imeOptions="actionDone"
        android:inputType="text"
        android:maxLines="1" />
</com.google.android.material.textfield.TextInputLayout>