📅  最后修改于: 2023-12-03 14:53:08.798000             🧑  作者: Mango
在API Level 21中,EditText提供了一个setHintTextColor()
方法,可以更改EditText的占位符颜色。但是,在API Level 26中,推出了一个名为setHintTextColor()
的新方法,可以更改未选择EditText的占位符颜色,在选择EditText时,占位符的颜色将变为文本颜色。
以下是如何使用新方法更改未选择EditText的占位符颜色的示例代码:
EditText editText = findViewById(R.id.edit_text);
int color = ContextCompat.getColor(this, R.color.hint_color); // 获取占位符颜色
editText.setHintTextColor(new ColorStateList(
new int[][]{new int[]{android.R.attr.state_enabled}},
new int[]{color}));
在上面的代码中,我们获取了定义为hint_color
的颜色资源,然后将其用作EditText的占位符颜色。我们使用ColorStateList
将颜色转换为适用于EditText占位符的通用状态列表,并在设置EditText的占位符颜色时使用它。
在本文中,我们介绍了如何更改EditText占位符的颜色。我们展示了如何使用新的setHintTextColor()
方法来更改未选择EditText的占位符颜色。请记住,这个方法在API Level 26及以上才被引入,如果您的应用程序需要向后兼容到旧的API级别,请使用API Level 21中的方法。