TextInputLayout-光标不会跟随用户在视图末尾输入

时间:2019-09-27 21:05:38

标签: android android-textinputlayout material-components-android android-textinputedittext

说明:

用户开始键入长文本,并且当光标“命中”视图的末尾时,EditText不会水平滚动,并且此后不会显示用户键入的所有字母。要查看键入的文本,用户需要手动滚动EditText。

换句话说,光标不在用户正常键入的文本的结尾。

源代码:

在XML上:

<com.google.android.material.textfield.TextInputLayout android:id="@+id/tilEmail"
        android:layout_width="0dp"
        android:layout_height="wrap_content">
        <EditText android:id="@+id/etEmail"
            android:inputType="textEmailAddress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
</com.google.android.material.textfield.TextInputLayout>

在gradle上

api 'androidx.legacy:legacy-support-v4:1.0.0'
api 'androidx.appcompat:appcompat:1.1.0'
api 'androidx.core:core-ktx:1.0.2'
api "com.google.android.material:material:1.0.0"

Android API版本:在API 28上测试

设备:像素3

更新

我发现将属性android:scrollbars="vertical"放在EditText上后,问题已部分解决。

“部分解决”,因为当我在具有android:windowSoftInputMode="adjustPan"的活动中使用它时,该问题不断发生。

2 个答案:

答案 0 :(得分:0)

使用TextInputEditText代替EditText

<com.google.android.material.textfield.TextInputLayout
    ...>

    <com.google.android.material.textfield.TextInputEditText
          android:layout_width="match_parent"
          android:layout_height="wrap_content"
          .../>

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

使用layout_height="wrap_content"自动使内容使用多行。

enter image description here

也可以尝试使用最新版本1.1.0-alpha10。

答案 1 :(得分:0)

使用TextInputEditText。

尝试android: scrollbars="vertical"。 版本api "com.google.android.material: material: 1.0.0"