1. ホーム
  2. android

[解決済み] setEnabled() vs setClickable()、その違いとは?

2023-04-22 04:18:11

質問

今までは、ユーザーがボタンを押さないようにしたい場合、ボタンに設定した button.setClickable(false); を設定し、通常はテキストをある種のグレー色に変更していました(ボタンが無効であることをユーザーに知らせるため)。今日、私は偶然にも setEnabled() プロパティを見つけました。

そこで、ドキュメントを見てみると、以下のようなメソッドの説明がありました。

setEnabled(boolean enabled)
   Set the enabled state of this view.

これはどういうことなのでしょうか?有効な状態/クリック可能な状態と無効な状態/クリック不可能な状態の違いは何でしょうか?どなたか、以前私がやっていたように、clickableプロパティを使用するのと setEnabled() プロパティを使うのとでは何が違うのでしょうか?どのような場合に使用すればよいのでしょうか?Stack Overflowを検索してみましたが、関連するものは見つかりませんでした。

どのように解決するのですか?

一体どういうこと?

引用元 GUI ウィジェット」の Wikipedia のページです。 :

アプリケーションのコンテキストでは、ウィジェットは任意の時点で有効または無効にすることができます。有効なウィジェットは、キーストロークやマウス操作などのイベントに応答する能力があります。そのようなイベントに反応できないウィジェットは、無効とみなされる。無効なウィジェットの外観は、通常、有効なウィジェットとは異なります。無効なウィジェットは、薄い色で描画されるか、何らかの方法で視覚的に隠されている可能性があります。例として、右の画像を参照してください。

このコンセプトは数十年前からあり、ほとんどの GUI フレームワークで見つけることができます。

<ブロッククオート

有効な状態/クリックできる状態、無効な状態/クリックできない状態の違いは何ですか?

Androidでは、クリックできないウィジェットは、クリックイベントに応答しません。無効なウィジェットは、クリックできないだけでなく、無効であることを視覚的に表示します。

とはどういう意味でしょうか?

何が Button のように見えるのか、反応するのか。 Button はその背景である StateListDrawable . 無効の状態には、特定の画像が使用されます。