如何在TextInputLayout获取或失去焦点时保持文本颜色相同?

3

我希望在文本输入布局中,当文本处于聚焦或非聚焦状态时,文本颜色保持不变。当我点击编辑文本(聚焦状态)时,我看到不同的颜色,而当它失去焦点时,我看到不同的颜色。以下是代码:

text_with_edit_text.xml

<LinearLayout
        android:id="@+id/linearLayoutlocality_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
        <android.support.design.widget.TextInputLayout
            android:id="@+id/tv_locality_2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            app:hintTextAppearance="@style/custom_text_appearance">
            <EditText
                android:id="@+id/et_locality_2"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="locality_2"
                />
        </android.support.design.widget.TextInputLayout>
    </LinearLayout>

styles.xml

<style name="custom_text_appearance" parent="@android:style/TextAppearance">
        <item name="android:textSize">12sp</item>
        <item name="android:typeface">normal</item>
        <item name="android:textColor">#FF5733</item>
    </style>

**

  • 例如

** - 我在下面附上一张图片,当'Nombre'(此时文本聚焦)未聚焦时,我希望颜色保持不变。同时请注意,EditText中提示的颜色不应与'Nombre'的颜色相同(当它处于未聚焦状态时)

2个回答

1
尝试这个,我的朋友。
 <android.support.design.widget.TextInputLayout
                        android:id="@+id/textInputLayoutUname"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:textColorHint="@color/colorPrimary"
                        android:theme="@style/MYAppTheme">

                        <EditText
                            android:id="@+id/edtUname"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Please Enter User Name"
                            android:imeOptions="actionNext"
                            android:textColorHint="@color/colorPrimary"
                            android:theme="@style/MYAppTheme" />
                    </android.support.design.widget.TextInputLayout>

                    <android.support.design.widget.TextInputLayout
                        android:id="@+id/textInputLayoutEmail"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content"
                        android:layout_marginTop="10dp"
                        android:textColorHint="@color/colorPrimary"
                        android:theme="@style/MYAppTheme">

                        <EditText
                            android:id="@+id/edtEmail"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content"
                            android:hint="Please Enter Email Address"
                            android:imeOptions="actionNext"
                            android:inputType="textEmailAddress"
                            android:textColorHint="@color/colorPrimary"
                            android:theme="@style/MYAppTheme" />
                    </android.support.design.widget.TextInputLayout>

这段文字的主题是:“这个的主题是”。
<style name="MYAppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorControlNormal">@color/colorPrimary</item>
    <item name="colorControlActivated">@color/colorPrimary</item>
    <item name="colorControlHighlight">@color/colorPrimaryDark</item>
</style>

现在根据您的要求更改颜色。

谢谢回复,但我想让TextInputLayout中的文本颜色在聚焦和非聚焦状态下相似。在您的解决方案中,编辑文本中提示的颜色和非聚焦状态的颜色是相同的。 - rahulgargnov4
我不明白你想告诉我什么,请简要解释一下。 - AskNilesh
我刚刚在我的问题中附上了一张图片。希望这能有所帮助。 - rahulgargnov4
意思是无论焦点在不在,您都希望输入布局保持相同的颜色。 - AskNilesh
是的,而且这种颜色不应该与EditText中的hintColor相同。 - rahulgargnov4
显示剩余2条评论

0
希望这对你有用:
<style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
            <!--EditText hint color-->
            <item name="android:textColorHint">@color/default_app_white</item>
           <!-- TextInputLayout text color-->
            <item name="colorControlActivated">@color/default_app_green</item>
            <!-- EditText line color when EditText on-focus-->
            <item name="colorControlHighlight">@color/default_app_green</item>
            <!-- EditText line color when EditText  in un-focus-->
            <item name="colorControlNormal">@color/default_app_white</item>
        </style>

对我没用。请查看我的更新问题,在其中我附上了一张图片,以便清楚地说明我的要求。请阅读图片的描述。 - rahulgargnov4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接