ant*_*kas 5 user-interface android android-layout android-textinputlayout
我正在尝试以编程方式更改更改 TextInputLayout 提示颜色。虽然设置
android:textColorHint="@color/redColor"
Run Code Online (Sandbox Code Playgroud)
在 xml 中工作得很好,我得到了这个:
并在编辑时
这就是我想要的,但我需要动态设置它
现在我 TextInputLayout 没有 setHintTextColor 方法但是 TextInputEditText 有所以我试着这样做:
editext.setHintTextColor(getColor(R.color.redColor))
Run Code Online (Sandbox Code Playgroud)
但这不适用于作为 TextInputLayout 子级的 editext,因此即使 TextInputLayout 确实支持“android:textColorHint”属性,它也不支持“setHintTextColor”方法我寻找不同的方法,我发现有人建议使用“ setHintTextAppearance" 与预定义的样式,这就是我所做的,但它给出了以下结果:
这是风格的样子
<style name="AppRedText" parent="@android:style/TextAppearance">
<item name="android:textColor">@color/redColor</item>
<item name="android:textColorHint">@color/redColor</item>
<item name="android:textSize">12sp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
如何以编程方式实现“android:textColorHint”属性行为?
Ser*_*sak 18
我一直在寻找解决方案很长时间。不过终于找到了!结果太容易了)
科特林版本:
private fun setTextInputLayoutHintColor(textInputLayout: TextInputLayout, context: Context, @ColorRes colorIdRes: Int) {
textInputLayout.defaultHintTextColor = ColorStateList.valueOf(ContextCompat.getColor(context, colorIdRes))
}
Run Code Online (Sandbox Code Playgroud)
最后:
setTextInputLayoutHintColor(textInputLayout, context, R.color.errorColor)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3128 次 |
| 最近记录: |