Вы также можете сделать его отключенным, установив альфа (делая его полупрозрачным). Это особенно полезно, если фон кнопки представляет собой изображение, и вы не хотите создавать для него состояния.
button.setAlpha(.5f);
button.setClickable(false);
обновление: Я написал это до Kotlin и когда я был новичком. Это скорее «быстрое и грязное» решение, но я не рекомендую его в профессиональной среде.
Сегодня, если бы я хотел универсальное решение, которое работает с любой кнопкой / видом без необходимости создавать список состояний, я бы создал расширение Kotlin.
fun View.disable() {
getBackground().setColorFilter(Color.GRAY, PorterDuff.Mode.MULTIPLY)
setClickable(false)
}
В Java вы можете сделать что-то похожее со статической утилитой, и вам просто нужно будет передать представление как переменную. Это не так чисто, но работает.