Как ускорить или отключить анимацию RadioButton на Android?

У меня есть RadioGroup с динамически добавляемыми RadioButtons. В моем действии я закрываю действие сразу после выбора RadioButton. Однако это приводит к артефакту, когда два RadioButton выглядят так, как будто они выбраны до завершения действия. Предыдущий выбор и текущий выбор все еще анимируются, когда действие заканчивается.

Есть ли способ ускорить анимацию или отключить ее вообще, чтобы я не видел этот визуальный артефакт?

radioButton.setChecked(true);   // previous selected button is still deselecting and current button is now selecting. both are in the middle of animating but activity closes before they can finish animating  
finishWithResult(selected == null ? Activity.RESULT_CANCELED : Activity.RESULT_OK, selectedItem);

person VIN    schedule 12.01.2017    source источник


Ответы (1)


Чтобы пользователь мог видеть выбор RadioButton, который он выбрал, вы можете отложить закрытие Activity вместо отключения анимации выбора RadioButton.

radioGroup.setOnCheckedChangeListener { radioGroup, checkedId ->
    Handler(Looper.getMainLooper()).postDelayed(
        {
            finish()
        },
        500
    )
}

Если вы все равно хотите удалить анимацию, вы можете увидеть ответ здесь: https://stackoverflow.com/a/51411238/1212331

E.g.

radioGroup.setOnCheckedChangeListener { radioGroup, checkedId ->
    radioGroup.jumpDrawablesToCurrentState()
}
person caitcoo0odes    schedule 10.07.2021