Я надуваю динамический TextInputLayout и хочу изменить texthintColor и использовать следующее, но в итоге выкидываю исключение
private fun setInputTextLayoutColor(color: Int, textInputLayout: TextInputLayout) {
try {
val field = textInputLayout.javaClass.getDeclaredField("mFocusedTextColor")
field.isAccessible = true
val states = arrayOf(intArrayOf())
val colors = intArrayOf(color)
val myList = ColorStateList(states, colors)
field.set(textInputLayout, myList)
val fDefaultTextColor = TextInputLayout::class.java.getDeclaredField("mDefaultTextColor")
fDefaultTextColor.isAccessible = true
fDefaultTextColor.set(textInputLayout, myList)
val method =
textInputLayout.javaClass.getDeclaredMethod("updateLabelState", Boolean::class.javaPrimitiveType)
method.isAccessible = true
method.invoke(textInputLayout, true)
} catch (e: Exception) {
e.printStackTrace()
}
}
setInputTextLayoutColor(resources.getColor(R.color.colorPrimary),myTextInputLayout)
версия библиотеки поддержки
implementation 'com.android.support:design:28.0.0'
Exception printStackTrace:
java.lang.NoSuchFieldException: mFocusedTextColor