如何在styles.xml中设置TextInputEditText的样式

N S*_*rma 3 android

我正在TextInputEditText我的注册屏幕中使用。我可以设置浮动标签的样式。我想在TextInputEditText使用样式的提示和文本上设置自定义字体。有谁知道这是怎么回事?

   <android.support.design.widget.TextInputLayout
        android:id="@+id/til_registration_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:paddingEnd="@dimen/default_view_padding_right_8dp"
        android:paddingStart="@dimen/default_view_padding_left_8dp"
        android:textColorHint="@color/colorSecondaryText"
        app:hintTextAppearance="@style/AppTheme.InputLayoutStyle"
        app:layout_constraintTop_toBottomOf="@id/textview_registration_title">

        <android.support.design.widget.TextInputEditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="@string/registration_name"
            android:imeOptions="actionNext"
            android:singleLine="true"
            android:textColor="@color/colorPrimaryText" />
    </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

styles.xml

<style name="AppTheme.InputLayoutStyle" parent="TextAppearance.AppCompat">
    <item name="android:textColor">@color/colorPrimary</item>
    <item name="fontFamily">@font/lato_light</item>
</style>

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="android:textViewStyle">@style/AppTheme.TextView</item>
    <item name="buttonStyle">@style/AppTheme.Button</item>
</style>
Run Code Online (Sandbox Code Playgroud)

我想为整个应用程序设置样式。

Raf*_*gas 7

旧问题,但值得回答。

只需在应用程序主题中设置“ textInputStyle”以设置TextInputLayouts的样式,并设置“ editTextStyle”以设置TextInputEditTexts的样式。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/colorAccent</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
    <item name="android:textViewStyle">@style/AppTheme.TextView</item>
    <item name="buttonStyle">@style/AppTheme.Button</item>
    <item name="textInputStyle">
        @style/MyCustomTextInputStyle
    </item>
    <item name="editTextStyle">
        @style/MyCustomEditTextStyle
    </item>
</style>

<style name="MyCustomTextInputStyle" parent="Widget.Design.TextInputLayout">
    <item name="android:textColorHint">@color/colorSecondaryText</item>
    <item name="hintTextAppearance">@style/any_style_you_may_want"</item>
</style>

<style name="MyCustomEditTextStyle" parent="Widget.AppCompat.EditText">
    <item name="android:textColor">@color/colorPrimary</item>
    <item name="fontFamily">@font/lato_light</item>
</style>
Run Code Online (Sandbox Code Playgroud)

这会将相同的样式应用于应用程序中的所有 TextInputLayout和TextInputEditText。

  • 谢谢,这对我有帮助。如何知道“textInputStyle”等存在以及它们的用途? (2认同)