TextInputLayout在浮动时更改提示颜色



就像上面的数百个问题一样,我想改变提示的颜色。本来我想在评论中问另一个这样的问题(未回答(,但我没有足够的声誉,所以我在这里问。

我希望当提示在TextInputEditText中时是一种颜色,当它浮动时是另一种颜色。在其他帖子中,答案总是如何在视图集中时更改提示。那不是我想要的,我可以做到。如果"编辑文本"不为空,我想更改提示颜色。我使用的是材料设计textInputLayout和textInputEditText。尝试了不同的样式和选择器,但仍然无法做到。尝试扩展TextInputLayout,但我不知道如何将其绑定到EditText,以便可以使用OnTextListener作为子视图。

到目前为止,我的代码只能在视图聚焦时更改提示的颜色。

样式:

<style name="TextInputLayoutAppearance" parent="Widget.Design.TextInputLayout">
<item name="colorControlNormal">@color/green_03</item>
<item name="colorControlActivated">@color/green_03</item>
<item name="hintTextColor">@color/dark_blue_60</item>
</style>
<style name="MyHintStyle" parent="@android:style/TextAppearance">
<!-- Hint color when floating and focused-->
<item name="android:textColor">@color/dark_blue_60</item>
<!-- doesn't change anything -->
<item name="android:textColorHint">@color/dark_blue</item>
<item name="colorAccent">@color/green_03</item>
<item name="colorControlNormal">@color/green_03</item>
<item name="colorControlActivated">@color/green_03</item>
</style>

XML:

<com.google.android.material.textfield.TextInputLayout
android:id="@+id/textInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:textColorHint="@color/dark_blue"
android:theme="@style/TextInputLayoutAppearance"
app:errorEnabled="true"
app:hintTextAppearance="@style/MyHintStyle">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/textInputEditText"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:backgroundTint="@color/green_03"
android:hint="@string/phoneNumber"
android:textColor="@color/dark_blue"
android:inputType="number"
android:maxLength="3"
android:text="12" />
</com.google.android.material.textfield.TextInputLayout>

有没有一种方法可以为所有视图以编程方式扩展和更改它,或者设置一个全局侦听器,或者使用样式和选择器的正确方法。

我认为您可以检查editext是否包含内容,或者is是否集中。如果是这样的话,那么你改变提示的颜色。检查此项的最佳位置-EditText的View.FocusListener。

相关内容

  • 没有找到相关文章

最新更新