TextInputLayout изменить boxStrokeColor программно - PullRequest
0 голосов
/ 20 апреля 2020

Я сделал пользовательский вид, который состоит из двух TextInputLayout

Вот вид:

The view

Я установил цвет подчеркивания на от синего до xml, применяя селектор к boxStrokeColor обеих ViewGroups. В какой-то момент они оба должны поменяться на красный, но когда я изменяю одно и то же свойство программно, цвет меняется только на одно из них.

fun setState(state: State) {
    val (color, visibility) = when (state) {
        State.NORMAL -> Pair(R.color.selector_key_input, View.INVISIBLE)
        State.ERROR -> Pair(R.color.selector_key_input_error, View.VISIBLE)
    }
    firstInputLayout.boxStrokeColor = ContextCompat.getColor(context, color)
    secondInputLayout.boxStrokeColor = ContextCompat.getColor(context, color)
    incorrectTextView.visibility = visibility
}

Такое поведение Google добавил к этим компонентам. , Любые идеи, как установить цвет подчеркивания программно?

Это красный селектор, а синий - то же самое. Разница лишь в том, что синий цвет применяется непосредственно через xml:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true" android:color="@color/red"/>
    <item android:state_hovered="true" android:color="@color/red"/>
    <item android:state_focused="true" android:color="@color/red"/>
    <item android:color="@color/red"/>
</selector>    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...