【问题标题】:TextInputLayout stylingTextInputLayout 样式
【发布时间】:2020-01-08 02:53:06
【问题描述】:

我的自定义 TextInputLayout 有问题。这是我的代码

<com.google.android.material.textfield.TextInputLayout
    android:id="@+id/phone"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:theme="@style/CustomTextInputLayout"
    android:hint="@string/phone_number"
    android:layout_marginTop="8dp"
    android:layout_marginStart="16dp"
    android:layout_marginEnd="16dp"
    app:startIconDrawable="@drawable/account"
    android:background="@color/bg_light_gray"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/page_description">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="?attr/listPreferredItemHeight"
        android:background="@color/bg_light_gray"
        android:inputType="phone"
        android:singleLine="true" />
</com.google.android.material.textfield.TextInputLayout>

这是我来自 style.xml 文件的代码

<style name="CustomTextInputLayout" parent="Widget.Design.TextInputLayout">
    <item name="errorTextAppearance">@style/ErrorText</item>
    <item name="colorControlNormal">@color/green_txt</item>
    <item name="colorControlActivated">@color/orange</item>
    <item name="colorControlHighlight">@color/orange</item>
</style>

我想将TextInputLayout 的基线颜色设为橙色,但现在是灰色。另外,我放置了一个图标,它的原始颜色为橙色,但放置后变为深灰色。现在我不明白为什么会这样以及如何解决这个问题。有人可以帮我吗?

【问题讨论】:

    标签: android material-design android-textinputlayout material-components-android


    【解决方案1】:

    我想将 TextInputLayout 的基线颜色设为橙色

    只需使用Material theme(例如Widget.MaterialComponents.TextInputLayout.FilledBox)和app:boxStrokeColor 属性来更改颜色。

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/custom_end_icon"
        style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
        app:boxStrokeColor="@color/text_input_selector
    

    选择器类似于:

    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item android:color="?attr/colorPrimary" android:state_focused="true"/>
      <item android:alpha="0.87" android:color="?attr/colorOnSurface" android:state_hovered="true"/>
      <item android:alpha="0.12" android:color="?attr/colorOnSurface" android:state_enabled="false"/>
      <item android:alpha="0.38" android:color="?attr/colorAccent"/>
    </selector>
    

    我还放置了一个图标,它的原始颜色为橙色,但放置后变为深灰色。

    使用app:endIconTint 属性为结束图标应用颜色或颜色选择器。

    <com.google.android.material.textfield.TextInputLayout
        android:id="@+id/custom_end_icon"
        android:hint="Hint text"
        style="@style/Widget.MaterialComponents.TextInputLayout.FilledBox"
        app:boxStrokeColor="@color/text_input_selector"
        app:endIconMode="custom"
        app:endIconDrawable="@drawable/ic_add_24px"
        app:endIconTint="@color/text_input_selector"
    

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 2020-05-21
      • 2017-03-11
      • 2019-06-02
      • 2017-03-06
      • 2021-03-07
      • 1970-01-01
      • 1970-01-01
      • 2016-10-24
      相关资源
      最近更新 更多