【问题标题】:How to change the hint size of TextInputLayout如何更改 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 这样的东西没有帮助

【问题讨论】:

    标签: android xml hint android-textinputlayout textinputlayout


    【解决方案1】:

    您可以减小 EditText 上的字体大小 - 这也会减小提示的大小。即 android:textSize="16sp"

    【讨论】:

    • 问题是我想让编辑文本大小更大,提示更小。
    • 无论如何都行不通。提示大小仅在 EditText 中增加,在 TextInputLayout 中没有增加。
    【解决方案2】:

    在 XML 中更改 TextInputLayout 的 app:errorTextAppearance

    <android.support.design.widget.TextInputLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:errorTextAppearance="@style/CustomTextInputLayoutStyle.ErrorTextStyle">
    

    其中CustomTextInputLayoutStyle.ErrorTextStylestyles.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_width="match_parent"
               android:layout_height="wrap_content"
               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_width="match_parent"     
          android:layout_height="wrap_content"
          app:hintTextAppearance="@style/TextInputLayoutHintText" >
          <android.support.design.widget.TextInputEditText            
              android:layout_width="match_parent"              
              android:layout_height="wrap_content"
              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 内)的提示

        但是对于空的EdittextTextInputLayout 提示从Edittext textSize 获取属性。

        【讨论】:

          【解决方案6】:

          对于material 1.4.0

          implementation 'com.google.android.material:material:1.4.0'

          您只需更改TextInputEditTextandroid:textSize 属性即可更改提示大小。

          <com.google.android.material.textfield.TextInputLayout
                  style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox"
                  android:layout_width="match_parent"
                  android:layout_height="wrap_content">
          
                  <com.google.android.material.textfield.TextInputEditText
                      android:layout_width="match_parent"
                      android:layout_height="wrap_content"
                      android:textSize="18sp"/>
          
              </com.google.android.material.textfield.TextInputLayout>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2018-11-20
            • 2015-09-15
            • 1970-01-01
            • 2017-12-02
            • 1970-01-01
            • 2020-06-26
            相关资源
            最近更新 更多