使用Android Material Components TextInputLayout from XML设置未聚焦且不为空时的提示文本颜色

使用Android Material Components TextInputLayout from XML设置未聚焦且不为空时的提示文本颜色,android,material-components-android,Android,Material Components Android,我希望TextInputLayout提示的颜色与聚焦时的颜色相同,即使视图未聚焦,但不为空,而无需在更改时以编程方式手动设置拟合颜色。嘿,您可以在此处设置背景选择器以实现此目的 <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/colo

我希望TextInputLayout提示的颜色与聚焦时的颜色相同,即使视图未聚焦,但不为空,而无需在更改时以编程方式手动设置拟合颜色。

嘿,您可以在此处设置背景选择器以实现此目的

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/colorSlate" android:state_focused="false" />
    <item android:color="@color/colorMidnight" android:state_focused="true" />

</selector> 


只需将此设置为edittext的背景即可

嘿,在那里,您可以设置背景选择器来实现此目的

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:color="@color/colorSlate" android:state_focused="false" />
    <item android:color="@color/colorMidnight" android:state_focused="true" />

</selector> 
yourEditText.setOnFocusChangeListener(new OnFocusChangeListener() {          
    public void onFocusChange(View v, boolean hasFocus) {
        if(!hasFocus) {
          if(""+yourEditText.getText.length > 0){  // NOT EMPTY
             // do your task when its unFocused and not null
           }               
        }
        else{
             // do your task when its Focused
           }
    }
});


只需将此设置为edittext的背景,到目前为止,我唯一的解决方案是侦听
edittext
上的焦点更改和文本更改事件,并根据
edittext
为空更改
TextInputLayout
s
defaultHintTextColor
属性。

到目前为止,我唯一的解决方案解决这个问题的方法是监听
EditText
上的焦点更改和文本更改事件,并根据
EditText
为空更改
TextInputLayout
s
defaultHintTextColor
属性。

您搜索过什么吗?大多数类似的问题都没有答案或答案不太合适我的情况。你搜索过什么吗?大多数类似的问题要么没有答案,要么答案不太符合我的情况。
yourEditText.setOnFocusChangeListener(new OnFocusChangeListener() {          
    public void onFocusChange(View v, boolean hasFocus) {
        if(!hasFocus) {
          if(""+yourEditText.getText.length > 0){  // NOT EMPTY
             // do your task when its unFocused and not null
           }               
        }
        else{
             // do your task when its Focused
           }
    }
});