我正在使用EditText
作为消息。填充EditText
是30sdp
。
问题是当我点击这个EditText时,光标在EditText的中间闪烁,而我希望光标应该在EditText的顶部闪烁。
这是我的代码。
<EditText
android:id="@+id/edremarkspetrolbill"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvpetrolbillremarks"
android:layout_marginLeft="@dimen/_7sdp"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginRight="@dimen/_10sdp"
android:background="@drawable/background_boxsearch"
android:gravity="top"
android:inputType="textMultiLine"
android:padding="@dimen/_30sdp"
android:textColor="@color/colorbluewh"
android:textCursorDrawable="@color/colorbluewh" />
在您的edittext中添加此属性:android:gravity="top"
在多行edittext中将gravity设置为top
android:gravity="top"
android:inputType="textMultiLine"
android:gravity="top"
是正确的,但你有android:layout_height="wrap_content"
,这是问题。您的编辑文本高度接近文本大小+填充,光标位于编辑文本的顶部,但您无法看到它。如果您现在将高度设置为编辑文本,您将看到光标所在的位置。或者,如果你想要高度wrap_content
,你可以提供minHeight
param,然后编辑文本将用minHeight
充气,如果文本不适合它的高度将扩展。你不仅可以在gravity
字段中提供一个参数,只需在|
中附加params。例如:top|start
,top|end
等。
使用如下的重力
android:gravity="top|left"
android:inputType="textMultiLine"
你应该改变这样的代码(我把100dp作为高度,但我建议你把编辑文本放在ConstraintLayout中并使用匹配约束)
<EditText
android:id="@+id/edremarkspetrolbill"
android:layout_width="match_parent"
android:layout_height="100dp"
android:layout_below="@+id/tvpetrolbillremarks"
android:layout_marginLeft="@dimen/_7sdp"
android:layout_marginTop="@dimen/_10sdp"
android:layout_marginRight="@dimen/_10sdp"
android:paddingStart="30dp"
android:paddingEnd="30dp"
android:background="@drawable/background_boxsearch"
android:gravity="top|left"
android:inputType="textMultiLine"
android:textColor="@color/colorbluewh"
android:textCursorDrawable="@color/colorbluewh" />