如果禁用EditText内部,如何更改TextInputLayout的浮动提示颜色

Aju*_*Aju 3 android android-edittext android-textinputlayout

我使用EditTextTextInputLayout.TextInputLayout如果禁用EditText,我只想更改浮动提示颜色.我尝试使用选择器它不起作用.

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="false" android:textColor="@color/darkGray" />
    <item android:state_pressed="false" android:state_focused="false" android:textColor="@color/lightGray"/>
</selector>
Run Code Online (Sandbox Code Playgroud)

Apu*_*rva 8

setHintTextAppearance(int styleId)TextInputLayout课堂上有一种方法.您可以使用此方法根据启用/禁用状态设置差异颜色以提示文本.

示例:

//for disabled editText
mEditText.setEnabled(false);
mTextInoutLayout.setHintTextAppearance(R.styles.CustomHintDisabled);

//for enablededitText
mEditText.setEnabled(true);
mTextInoutLayout.setHintTextAppearance(R.styles.CustomHintEnabled);
Run Code Online (Sandbox Code Playgroud)

在你的 styles.xml

<style name="CustomHintDisabled" parent="YourBaseTheme.TextAppearance">
    <item name="textColor">@color/gray</item>
</style>

<style name="CustomHintEnabled" parent="YourBaseTheme.TextAppearance">
    <item name="textColor">@color/black</item>
</style>
Run Code Online (Sandbox Code Playgroud)

  • R.style.CustomHintEnabled而不是R.styles.CustomHintEnabled (2认同)

Shv*_*vet 5

如果要更改每个TextInputLayout具有相同颜色的提示,可以style使用以下代码更改它.

  <style name="income" parent="TextAppearance.AppCompat">
        <item name="android:textColor">@color/green</item>
        <item name="android:textColorHint">@color/green</item>
        <item name="colorAccent">@color/green</item>
        <item name="colorControlNormal">@color/green</item>
        <item name="colorControlActivated">@color/green</item>
        <item name="colorControlHighlight">@color/green</item>
        <item name="android:textColorHighlight">@color/green</item>
    </style>
Run Code Online (Sandbox Code Playgroud)

这里我只使用了这个代码,TextInputLayout并且在选择时也改变了它的提示颜色,文本颜色,textinputlayout的颜色,也未选中.

 <android.support.design.widget.TextInputLayout
                android:id="@+id/input_income"
                style="@style/income"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_below="@+id/input_days"
                android:layout_margin="10dp"
                android:hint="Enter Monthly Take Home Income"
                android:textColorHint="#18c418"
                android:theme="@style/income"
                app:hintAnimationEnabled="true">

            </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)

使用android:theme对于棒棒糖及以上的应用非常重要.


Baj*_*nde 5

执行以下步骤:- 1.将此样式添加到您的styles.xml中

<style name="FloatingLabel" parent="@android:style/TextAppearance">
    <item name="android:textColor">@color/theme</item>
    <item name="android:textSize">12sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)

2.使用它像波纹管

<android.support.design.widget.TextInputLayout
                    android:id="@+id/loginPassLayout"
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_centerHorizontal="true"
                    android:layout_toRightOf="@+id/user"
                    android:textColorHint="@color/white"
                    foo:hintTextAppearance="@style/FloatingLabel">

                    <com.app.Widget.EditTextPlus
                        android:id="@+id/edt_email"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:layout_centerVertical="true"
                        android:layout_marginLeft="5dp"
                        android:background="@android:color/transparent"
                        android:hint="Email"
                        android:inputType="textEmailAddress"
                        android:maxLength="30"
                        android:maxLines="1"
                        android:paddingLeft="10dp"
                        android:text=""
                        android:textColor="@color/white"
                        android:textColorHint="@color/white"
                        android:textSize="15sp"/>
                </android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)