TextInputLayout
是 Android 中用于包装 EditText
的一个布局组件,它提供了 Material Design 风格的输入框样式,包括浮动标签、错误提示等功能。通过编程方式更改 TextInputLayout
的焦点和非焦点提示颜色,可以增强用户界面的交互性和美观性。
EditText
获得焦点时,提示文字的颜色。EditText
未获得焦点时,提示文字的颜色。适用于需要根据用户输入状态动态改变提示颜色的场景,例如表单验证、搜索框等。
以下是通过编程方式更改 TextInputLayout
焦点和非焦点提示颜色的示例代码:
import android.graphics.Color;
import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;
import com.google.android.material.textfield.TextInputLayout;
import com.google.android.material.textfield.TextInputEditText;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextInputLayout textInputLayout = findViewById(R.id.textInputLayout);
TextInputEditText textInputEditText = findViewById(R.id.textInputEditText);
// 设置非焦点提示颜色
textInputLayout.setHintTextColor(Color.GRAY);
// 设置焦点提示颜色
textInputLayout.setHintTextColor(Color.BLUE);
// 监听焦点变化
textInputEditText.setOnFocusChangeListener((view, hasFocus) -> {
if (hasFocus) {
textInputLayout.setHintTextColor(Color.BLUE);
} else {
textInputLayout.setHintTextColor(Color.GRAY);
}
});
}
}
TextInputLayout - Material Components for Android
TextInputLayout
和 TextInputEditText
正确绑定。onCreate
方法中设置颜色,而不是在其他生命周期方法中。setOnFocusChangeListener
正确设置。TextInputEditText
可以正常获取焦点,没有被其他视图遮挡。通过以上方法,可以有效地更改 TextInputLayout
的焦点和非焦点提示颜色,提升应用的用户界面交互性和美观性。
领取专属 10元无门槛券
手把手带您无忧上云