我有一个多行的编辑文本。我将行数设置为5,但是当编辑文本绘制时,它显示空行,然后是编辑文本的标准行。我想在所有线下画一条线。这是编辑文本:
<EditText
android:id="@+id/task_editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Some text"
android:lines="5"
android:maxLines="10"
android:inputType="textMultiLine"
/>
屏幕:
怎么做?
答案 0 :(得分:1)
据我所知,EditText
没有直接的方式到所有行的下划线。
虽然有办法,
在multi_line.xml
中创建drawable
并定义所需的所有行(在此示例中仅定义了5行)
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:gravity="bottom"
android:top="-60dp">
<shape
android:shape="line">
<stroke android:width="1dp"
android:color="#000"/>
<!--you can change the color or width of every single line-->
</shape>
</item>
<item
android:gravity="bottom"
android:top="-20dp">
<shape
android:shape="line">
<stroke android:width="1dp"
android:color="#000"/>
</shape>
</item>
<item
android:gravity="bottom"
android:top="20dp">
<shape
android:shape="line">
<stroke android:width="1dp"
android:color="#000"/>
</shape>
</item>
<item
android:gravity="bottom"
android:top="60dp">
<shape
android:shape="line">
<stroke android:width="1dp"
android:color="#000"/>
</shape>
</item>
<item
android:gravity="bottom"
android:top="100dp">
<shape
android:shape="line">
<stroke android:width="1dp"
android:color="#000"/>
</shape>
</item>
</layer-list>
android:top
属性的已使用值
(-60dp
,-20dp
,20dp
,60dp
,100dp
)可以更改,具体取决于字体大小。
然后使用multi_line.xml
作为background
<EditText
android:id="@+id/task_editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Some text"
android:lines="5"
android:maxLines="10"
android:inputType="textMultiLine"
android:gravity="top"
android:background="@drawable/multi_line"
/>
注意:此示例未在不同屏幕上进行测试。