我有一个如下的TextInputLayout:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="200dp">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textInputLayoutEdit"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="200dp"
android:gravity="top" />
</com.google.android.material.textfield.TextInputLayout>
此TextInputLayout的高度是动态的,如中,当写入更多文本时,高度将增长。 因此,在高度变得大于屏幕的情况下,为了看到TextInputLayout的第一行,需要滚动,这就存在书写聚焦的问题。 当在顶部一路书写时,屏幕焦点将一路向下,而光标仍在顶部。 这使我无法看到顶部正在写入的内容,因为屏幕正在滚动到TextInputLayout的底部。 而且有时焦点又回到顶部,几乎像是一个小故障的闪烁。
写在底部正常工作,因为底部屏幕焦点总是优先级。 当TextInputLayout的高度还没有超过屏幕时,在顶部书写也可以很好地工作,因为不需要滚动。
是否需要在TextInputLayout中设置一个属性,以便使屏幕聚焦在我正在书写的地方?
将MaxLines
属性添加到TextInputedText
中,并将InputType
属性设置为TextMultiLine
,如下所示:
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/tiet_hisab_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxLines="2"
android:hint="@string/details"
android:inputType="textAutoCorrect|textMultiLine|textAutoComplete"
android:textAppearance="@style/TextAppearance.AppCompat.Small" />