【问题标题】:How to set underline color of TextInputLayout [duplicate]如何设置TextInputLayout的下划线颜色[重复]
【发布时间】:2020-02-25 01:11:04
【问题描述】:

我在 Android 9.0 上使用 com.google.android.material:material:1.1.0。 我想在 TextInputLayout 没有聚焦但没有任何效果时设置它的下划线颜色。

我的风格:

<style name="EditTextTheme" parent="Widget.MaterialComponents.TextInputLayout.FilledBox">
    <item name="colorAccent">#00BFFF</item>
    <item name="colorControlNormal">#FFFF00</item>
    <item name="colorControlActivated">#FF00FF</item>
    <item name="colorControlHighlight">#FFFF00</item>
    <item name="boxStrokeColor">@color/text_input_box_stroke</item>
</style>

我的选择器(text_input_box_stroke):

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#00BFFF" android:state_focused="true"/>
    <item android:color="#FFFF00" android:state_hovered="true"/>
    <item android:color="#00FF00" android:state_enabled="false"/>
</selector>

还有我的 TextInputLayout:

<com.google.android.material.textfield.TextInputLayout
    style="@style/EditTextTheme"
    android:layout_width="200dp"
    android:layout_height="wrap_content"
    android:layout_marginLeft="50dp"
    android:hint="Email">

    <com.google.android.material.textfield.TextInputEditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:inputType="textWebEmailAddress" />
</com.google.android.material.textfield.TextInputLayout>

【问题讨论】:

    标签: android material-components-android


    【解决方案1】:

    右击res -> new -> Android Resource Directory -> Resource type -> color 将您的文件命名为 text_input_box_stroke.xml 并将其放入颜色文件夹中

    text_input_box_stroke.xml

    <?xml version="1.0" encoding="utf-8"?>
     <selector xmlns:android="http://schemas.android.com/apk/res/android">
      <item
        android:state_enabled="true"
        android:color="#00BFFF" />
      <item
        android:state_pressed="true"
        android:color="#FFFF00" />
      <item
        android:state_focused="true"
        android:color="#00C853" />
     <item
        android:color="#ff00ff" />
    </selector>
    

    为了防止 TextInputLayout 视图在包含它的 Activity 或 Fragment 启动时获得焦点,将此属性放置到包含 TextInputLayout 的父布局中

    android:fadeScrollbars="false"
    android:fillViewport="true"
    

    布局文件

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout  
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:id="@+id/content">
        <com.google.android.material.textfield.TextInputLayout
            android:id="@+id/layout_data"
            style="@style/TextInputLayoutStyleFilledBox"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:hint="Hint"
            android:textColorHint="@color/black"
            app:boxBackgroundColor="@android:color/transparent"
            app:boxStrokeWidth="2dp"
            app:hintTextColor="@color/black"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent">
            <com.google.android.material.textfield.TextInputEditText
                android:id="@+id/input_value"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:text="123456789" />
        </com.google.android.material.textfield.TextInputLayout>
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    

    styles.xml

    <style name="TextInputLayoutStyleFilledBox" 
     parent="@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
        <item name="colorAccent">#00BFFF</item>
        <item name="colorControlNormal">#FFFF00</item>
        <item name="colorControlActivated">#FF00FF</item>
        <item name="colorControlHighlight">#FFFF00</item>
        <item name="boxStrokeColor">@color/text_input_box_stroke</item>
    </style>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-05
      • 2018-08-13
      • 2016-11-24
      • 2013-05-11
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多