«Заблокировать» нажатое состояние кнопки, если на нее нельзя нажать в Kotlin, Android - PullRequest
0 голосов
/ 05 августа 2020

Моя кнопка имеет 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 моего фрагмента, поэтому у меня это не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...