4

で使用EditTextしていTextInputLayoutます。TextInputLayoutEditTextが無効になっている場合のフローティングヒントの色を変更したいだけです。セレクターで試してみましたが、機能しません。

<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>
4

6 に答える 6

9

クラスsetHintTextAppearance(int styleId)で呼び出されるメソッドが 1 つあります。TextInputLayoutこのメソッドを使用して、有効/無効の状態に基づいてヒント テキストに異なる色を設定できます。

例 :

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

//for enablededitText
mEditText.setEnabled(true);
mTextInoutLayout.setHintTextAppearance(R.style.CustomHintEnabled);

そしてあなたの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>
于 2016-03-02T04:45:24.193 に答える
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>

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>
于 2016-03-02T05:35:25.833 に答える
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>

ここでは、このコードを 1 つだけ使用し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>

android:themeロリポップ以上に適用するには使い方が重要です。

于 2016-03-02T05:18:19.593 に答える
3

で app:hintTextAppearance を試してくださいandroid.support.design.widget.TextInputLayout。のスタイルを定義することでapp:hintTextAppearance、フローティング ラベルの色を簡単に設定することもできます。styles.xml で:

<style name="CustomTextAppearance" parent="@android:style/TextAppearance">
<item name="android:textSize">16sp</item>
<item name="android:textColor">@color/colorAccent</item>

そしてあなたのTextInputLayoutで:

<android.support.design.widget.TextInputLayout
android:id="@+id/lyt_goal"
style="@style/CustomTextInput"
app:hintTextAppearance="@style/CustomTextAppearance">

<android.support.v7.widget.AppCompatEditText
    android:id="@+id/edt_goal"
    style="@style/CustomEditText"
    android:hint="@string/str_goal" />

これがあなたを助けることを願っています。

于 2016-03-02T05:45:08.207 に答える
1

でテーマを設定できますTextInputLayout

<android.support.design.widget.TextInputLayout
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:theme="@style/TextLabel">

     <EditText
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:hint="First Name"
         />

 </android.support.design.widget.TextInputLayout>

<style name="TextLabel" parent="TextAppearance.AppCompat">
    <!-- Hint color and label color in FALSE state -->
    <item name="android:textColorHint">@color/colorHint</item> 
    <item name="android:textSize">16sp</item>

    <item name="colorAccent">@color/colorAccent</item>
    <item name="colorControlNormal">@color/colorNormal</item>
    <item name="colorControlActivated">@color/colorActivated</item>
 </style>

その他のEditTextlayout場合は、アプリケーションのテーマで定義された colorAccent から色を選択します。

<item name="colorAccent">@color/colorAccent</item>

それがあなたを助けることを願っています。

于 2016-03-02T05:41:32.040 に答える