如何更改 TextInputLayout 的提示大小
Posted
技术标签:
【中文标题】如何更改 TextInputLayout 的提示大小【英文标题】:How to change the hint size of TextInputLayout 【发布时间】:2015-12-26 21:31:33 【问题描述】:这是我的xml
<android.support.design.widget.TextInputLayout
style="@style/main_input_text"
android:layout_marginTop="@dimen/activity_medium_margin"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<android.support.v7.widget.AppCompatEditText
style="@style/main_edit_text"
android:inputType="text" />
</android.support.design.widget.TextInputLayout>
这就是风格
<style name="main_input_text">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">@dimen/activity_edittext_height</item>
<item name="android:background">@drawable/mc_shape_border_button_transparent</item>
<item name="android:gravity">center_vertical</item>
<item name="android:paddingTop">@dimen/activity_extra_small_margin</item>
<item name="android:paddingBottom">@dimen/activity_extra_small_margin</item>
<item name="android:keyTextSize">8sp</item>
<item name="android:textSize">8sp</item>
</style>
我没有发现像hintSize、textSize 和 keyTextSize 这样的东西没有帮助
【问题讨论】:
【参考方案1】:您可以减小 EditText 上的字体大小 - 这也会减小提示的大小。即 android:textSize="16sp"
【讨论】:
问题是我想让编辑文本大小更大,提示更小。 无论如何都行不通。提示大小仅在EditText
中增加,在 TextInputLayout
中没有增加。【参考方案2】:
在 XML 中更改 TextInputLayout 的 app:errorTextAppearance
。
<android.support.design.widget.TextInputLayout
android:layout_
android:layout_
app:errorTextAppearance="@style/CustomTextInputLayoutStyle.ErrorTextStyle">
其中CustomTextInputLayoutStyle.ErrorTextStyle
在styles.xml
中定义为
<style name="CustomTextInputLayoutStyle.ErrorTextStyle" parent="TextAppearance.Design.Error">
<item name="android:textSize">10sp</item>
</style>
【讨论】:
【参考方案3】:在你的styles.xml中
<style name="TextLabel" parent="TextAppearance.Design.Hint">
<item name="android:textSize">16sp</item>
</style>
然后在你的布局文件中:
<android.support.design.widget.TextInputLayout
android:layout_
android:layout_
android:layout_marginLeft="@dimen/activity_horizontal_margin"
android:layout_marginRight="@dimen/activity_horizontal_margin"
android:layout_marginTop="12dp"
app:hintTextAppearance="@style/TextLabel"
android:minHeight="30dp">
【讨论】:
当edittext(TextInputLayout内)没有文本时,这种样式不起作用。 @NeerajBagra 似乎非焦点风格的提示颜色必须由android:textColorHint
属性设置【参考方案4】:
1) 使用样式将hintTextAppearance
添加到您的 InputLayout
<android.support.design.widget.TextInputLayout xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
app:hintTextAppearance="@style/TextInputLayoutHintText" >
<android.support.design.widget.TextInputEditText
android:layout_
android:layout_
android:textSize="16sp" />
</android.support.design.widget.TextInputLayout>
2) 然后只需将样式添加到您的styles.xml
<style name="TextInputLayoutHintText">
<item name="android:textColor">@color/gray</item>
<item name="android:textSize">12sp</item></style>
【讨论】:
【参考方案5】:@Santiago Martínez 的回答仅适用于非空 Edittext
(在 TextInputLayout
内)的提示
但是对于空的Edittext
,TextInputLayout
提示从Edittext
textSize
获取属性。
【讨论】:
【参考方案6】:对于material 1.4.0
implementation 'com.google.android.material:material:1.4.0'
您只需更改TextInputEditText
的android:textSize
属性即可更改提示大小。
<com.google.android.material.textfield.TextInputLayout
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
android:layout_
android:layout_>
<com.google.android.material.textfield.TextInputEditText
android:layout_
android:layout_
android:textSize="18sp"/>
</com.google.android.material.textfield.TextInputLayout>
【讨论】:
以上是关于如何更改 TextInputLayout 的提示大小的主要内容,如果未能解决你的问题,请参考以下文章
使用 TextInputLayout 时更改 EditText 提示颜色