【发布时间】:2020-01-07 10:02:43
【问题描述】:
在我的应用程序中,我使用的是 EditText。正如我们所知,在新版本中 EditText 没有边框,它只显示一个底线。
现在我想将底线的高度/厚度设置为 1dp。
【问题讨论】:
标签: android android-edittext android-textinputlayout material-components material-components-android
在我的应用程序中,我使用的是 EditText。正如我们所知,在新版本中 EditText 没有边框,它只显示一个底线。
现在我想将底线的高度/厚度设置为 1dp。
【问题讨论】:
标签: android android-edittext android-textinputlayout material-components material-components-android
<?xml version="1.0" encoding="utf-8" ?>
<shape xmlns:android="http://schemas.android.com/apk/r..."
android:thickness="3dp"
android:shape="rectangle">
<stroke android:width="3dp" android:color="#4799E8"/>
</shape>
将此添加到可绘制资源文件中并在编辑文本中更改其背景:
<EditText
android:background="@drawable/drawableResourceFileName"/>
【讨论】:
只需使用标准的TextInputLayout 和Filled Box 样式:Widget.MaterialComponents.TextInputLayout.FilledBox。
类似:
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
...>
<com.google.android.material.textfield.TextInputEditText
.../>
</com.google.android.material.textfield.TextInputLayout>
结果如下:
未聚焦时实心框下划线描边的默认值为1dp。
如果您想自定义宽度,可以在布局中使用这些属性:
app:boxStrokeWidth="xxdp"
app:boxStrokeWidthFocused="xxdp"
或自定义样式:
<item name="boxStrokeWidth">xxdp</item>
<item name="boxStrokeWidthFocused">xxdp</item>
注意:需要1.1.0的版本。
【讨论】: