ユーザーには無効に見えるようにボタンをグレー表示したいのですが、クリックをリッスンして、ボタンが適用できない理由を説明するメッセージをユーザーに表示できるようにします。
ボタンの色を手動で灰色に設定するのではなく、Android API が適切な標準の無効な外観を構成するものであることを確認したいと思います。これを行う最良の方法は何ですか?
ユーザーには無効に見えるようにボタンをグレー表示したいのですが、クリックをリッスンして、ボタンが適用できない理由を説明するメッセージをユーザーに表示できるようにします。
ボタンの色を手動で灰色に設定するのではなく、Android API が適切な標準の無効な外観を構成するものであることを確認したいと思います。これを行う最良の方法は何ですか?
これは、確実に機能することを無効にしたときにタッチのイベントを公開し、テストしたカスタム ボタンです。あなたに合わせてデザインされた
public class MyObservableButton extends Button
{
public MyObservableButton(Context context, AttributeSet attrs)
{
super(context, attrs);
}
private IOnClickWhenEnabledListner mListner;
public void setOnClickWhenEnabledListener(IOnClickWhenEnabledListner listener) {
mListner = listener;
}
private interface IOnClickWhenEnabledListner {
public void onClickWhenEnabled();
}
@Override
public boolean onTouchEvent(MotionEvent event)
{
if (event.getAction() == MotionEvent.ACTION_DOWN) {
if (!isEnabled() && mListner != null) {
mListner.onClickWhenEnabled();
}
}
return super.onTouchEvent(event);
}
}
これは、Android 開発者としての私の観点から、あなたが望むことを達成するための正しい方法です。
Android のすべてのビューを拡張しても問題はなく、それらを xml ファイルで使用し、代わりにソースを使用します。
幸運を
ボタンの背景を手動で無効のデフォルトに設定することもできます。ただし、ボタンを有効のままにして、クリックイベントを通常の方法で処理します
このような何かがそれを行う必要があります:
mBtn.setBackgroundResource(android.R.drawable.btn_default_normal_disabled);
私は Android の専門家ではないので、もっと良い方法があるかもしれませんが、ボタンを無効にして、イベントをキャッチする透明なビューをオーバーレイするのはどうですか?
ビューを常にボタンの下に置くことができるので、z-index を変更するか、必要に応じて動的に作成するだけで済みます。
Button
のスタイルをグレー表示に設定して(押された状態と押されていない状態の両方で)、setOnClickListener()
通常どおりに設定することもできますが、onClick()
メソッドにクリックできないというメッセージを表示させます。
ボタンはテキストビューを拡張するため。.setTextColor() や .setBackgroundColor() などのテキストビューでメソッドを使用できます。
ディスプレイには、次の 2 つのオプションがあります。
好きなのを選びな。