当EditText在Cardview内时,ImeOption DONE无法正常工作

时间:2017-08-17 04:01:46

标签: java android xml android-layout

当在CardView内部时,EditText imeOption无效,我尝试了不同的选项,例如在代码中添加imeOption:

editPassword.setImeOptions(EditorInfo.IME_ACTION_DONE);

我使用的XML是:

<LinearLayout
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="vertical">

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginStart="@dimen/normal_padding_screen"
            android:layout_marginEnd="@dimen/normal_padding_screen"
            app:cardBackgroundColor="@android:color/white"
            app:cardElevation="6dp">

            <EditText
                android:id="@+id/editTextEmail"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/white"
                android:padding="8dp"
                android:hint="@string/hint_email"
                android:imeOptions="actionNext"
                android:inputType="textEmailAddress"
                android:drawableStart="@drawable/ic_mail"
                android:drawablePadding="8dp"/>
        </android.support.v7.widget.CardView>

        <android.support.v7.widget.CardView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:layout_marginStart="@dimen/normal_padding_screen"
            android:layout_marginEnd="@dimen/normal_padding_screen"
            android:layout_marginBottom="10dp"
            android:descendantFocusability="beforeDescendants"
            app:cardBackgroundColor="@android:color/white"
            app:cardElevation="6dp">

            <EditText
                android:id="@+id/editTextPass"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="@android:color/white"
                android:padding="8dp"
                android:lines="1"
                android:imeOptions="actionDone"
                android:hint="@string/hint_password"
                android:drawableStart="@drawable/ic_password"
                android:drawablePadding="12dp"/>
        </android.support.v7.widget.CardView>

    </LinearLayout>

但仍然将imeOption设置为&#34; actionDone&#34;在键盘的EditText for Password中我看到&#34;输入/ next_line&#34;

的选项

screenshot

1 个答案:

答案 0 :(得分:0)

您似乎错过了EditText的一些必需参数。添加maxlines =&#34; 1&#34;,将其限制为单行。 添加inputType =&#34; textPassword&#34;或&#34; numberPassword&#34;,它定义EditText的输入类型。 使用这两个值,您的EditText应该可以正常工作。

           <EditText
            android:id="@+id/editTextPass"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:padding="8dp"
            android:maxLines="1"
            android:inputType="textPassword"
            android:imeOptions="actionDone"
            android:hint="enter password"
            android:drawableStart="@mipmap/ic_launcher"
            android:drawablePadding="12dp"/>

希望这会对你有所帮助。快乐的编码。