之前我问过如何自定义 TextInputLayout 的轮廓颜色。您可以查看此LINK 中的问题.
在我的应用中声明这种颜色:
<color name="mtrl_textinput_default_box_stroke_color" tools:override="true">#fff</color>
这可行,但会更改应用中所有 TextInputLayout 的线条颜色。如何将不同的颜色应用到同一应用中的不同 TextInputLayouts?
谢谢
最佳答案
好吧,在 Google 弄清楚我们如何访问像这样的简单且相当基本的东西之前,您始终可以使用旧的反射。 TextInputLayout 类中的字段称为 defaultStrokeColor,因此如果您将其设置为可访问并更改值,那么在现实世界中它也应该更改。
try {
Field field = TextInputLayout.class.getDeclaredField("defaultStrokeColor");
field.setAccessible(true);
field.set(commentInputLayout,
ContextCompat.getColor(itemView.getContext(), R.color.app_middleweight));
}
catch (NoSuchFieldException | IllegalAccessException e) {
Log.w("TAG", "Failed to change box color, item might look wrong");
}
关于android - 更改 TextInputLayout 轮廓颜色(或如何覆盖主题/样式中的颜色),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50928644/