web-dev-qa-db-ja.com

ImageButtonを無効にしますか?

ImageButton is disabled(クリック不可)のままにしたかったのですが、Android: enabled = "false"を使用したため機能しません。

disableImageButtonの方法を知っている人はいますか?

29
Pedro

ボタンを無効として表示したい場合(XMLドローアブルファイルで設定している場合)、setClickable(false) AND setEnabled(false)の両方を実行するとうまくいきます。

24
GKeps

XMLで _Android:clickable_ 属性を使用するか、コードから setClickable(boolean) メソッドを使用できます。

14
Cristian

ImageButtonのクリックリスナーを設定するとき、内部でAndroidはクリック可能な属性をtrueにリセットします。そのため、Android:clickable="false" in xmlは役に立ちません。

さらに、属性Android:enabled="false" xmlも機能しませんでした。

うまくいったのはコードを介してのみ設定することです:

ImageButton mBtnDelayCall = (ImageButton)v.findViewById(R.id.btnCallDelay);
mBtnDelayCall.setEnabled(false);
3
user2924714

disableおよび"grey out"画像が必要な場合は、次の(Kotlin)を使用します。

無効にする:

chevron_left.imageAlpha = 75 // 0 being transparent and 255 being opaque
chevron_left.isEnabled = false

有効化:

chevron_left.imageAlpha = 255
chevron_left.isEnabled = true

XML:

<ImageButton
            Android:id="@+id/chevron_left"
            Android:layout_width="48dp"
            Android:layout_height="48dp"
            Android:layout_marginBottom="4dp"
            Android:layout_marginStart="4dp"
            Android:background="?android:attr/selectableItemBackgroundBorderless"
            Android:src="@drawable/chevron_left"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"/>

あなたの背景色は無効状態の色を定義します。ご希望の結果によって異なります。

2
Javatar

ImageButtonのようなImageViewTextViewの属性であるため、Android:enabled="false"属性はありません。 ImageButtonのXMLでenable = falseを作成する場合は、Android:focusable="false"Android:clickable="false"を追加する必要があります。

1
Yuri Misyac