【问题标题】:Android: Text Input Layout: How to change the height if the Edit Text LineAndroid:文本输入布局:如果编辑文本行如何更改高度
【发布时间】:2018-08-03 08:49:19
【问题描述】:
有一种方法可以改变TextInputLayout中Edit Text行的颜色:
<item name="colorControlNormal">@color/White</item>
<item name="colorControlActivated">@color/red</item>
但是有什么方法可以改变编辑文本行的高度吗?
【问题讨论】:
标签:
android
android-edittext
android-styles
android-textinputlayout
【解决方案1】:
不,你不能改变edittext行的高度,你可以像这样自定义edittext行
android:backgroud=@null
edittext 下方的 View 可以设置颜色高度宽度等。
<View android:height="5dp"android:backgroud='#000000'/>
【解决方案2】:
您可以为此创建自定义可绘制对象并将其应用于edittext。
edt_bg_selector.xml:
?xml version="1.0" encoding="utf-8"?>
selector xmlns:android="http://schemas.android.com/apk/res/android">
item android:drawable="@drawable/edt_bg_selected" android:state_focused="true"/>
item android:drawable="@drawable/edt_bg_normal" android:state_focused="false"/>
/selector>
edt_bg_normal.xml:
<solid android:color="#00FFFFFF" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
edt_bg_selected.xml:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:bottom="1dp"
android:left="-2dp"
android:right="-2dp"
android:top="-2dp">
<shape android:shape="rectangle" >
<stroke
android:width="1px"
android:color="#ff0000" />
<solid android:color="#00FFFFFF" />
<padding
android:bottom="5dp"
android:left="5dp"
android:right="5dp"
android:top="5dp" />
</shape>
</item>
</layer-list>
布局文件
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/edt_bg_selector" />
【解决方案3】:
不,没有预定义的方法可以更改height。但是,您可以在EditText 上设置自定义背景,该背景是可绘制的,您可以在其中设置任何属性。比如颜色、高度或填充。检查this answer.
【解决方案4】:
@color/md_white_1000
<item name="colorControlActivated">@color/md_white_1000</item>
</style>
<style name="MyHintText" parent="TextAppearance.AppCompat.Small">
<item name="android:textColor">@color/md_white_1000</item>
</style>
<style name="MyErrorText" parent="TextAppearance.AppCompat.Small">
<item name="android:textColor">@color/md_red_500</item>
</style>