Моя кнопка имеет 3 состояния, и представление каждого из них зависит от конкретного условия. (Вы можете ответить на этот вопрос, который я задал ранее, чтобы увидеть скриншоты состояний моей кнопки): Другой фон для состояний кнопки в Kotlin
Я хочу, чтобы моя кнопка своего рода "блокировать" его нажатое состояние, если оно не является кликабельным.
Мои состояния кнопки:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_enabled="false" android:drawable="@drawable/background_stroke_bluish_rounded_corners_2dp"/>
<item android:state_pressed="false"
android:drawable="@drawable/background_bluish_rounded_corners" /> <!-- pressed -->
<item android:state_pressed="true"
android:drawable="@drawable/background_dark_teal_rounded_corners" /> <!-- focused -->
<item android:state_enabled="true" android:drawable="@drawable/background_bluish_rounded_corners"/>
</selector>
Как я пытался установить isClickable
на false
:
updateFragmentView?.mFragmentRootView?.btnUpdate?.isClickable = false
Сейчас он работает, и необходимое событие, а isClickable = true
не происходит, но я хочу реализовать, чтобы не позволять нажатому состоянию становиться видимым, если кнопка не активна. Возможно ли это реализовать без изменения XML?
Нечто подобное можно найти в isUserInteractionEnabled
для iOS. Если установлено значение false
, выделенный цвет кнопки не работает (если кнопка есть).
UPD: Я пробовал setEnabled(false)
, а также .isEnabled = true
, но это влияет на logi c моего фрагмента, поэтому у меня это не работает.