内部に単純な listView のみを含むカスタム ダイアログを追加しました。
項目を押している間、選択色 (通常、追加の設定なしでリスト ビューに表示されます) が表示されません。クリックリスナーは機能しますが、色は機能しません。
また、明示的にセレクターを設定しようとしました:
list.setSelector(R.color.blue);
しかし、それは何も起こりません。リストに異なる背景色を設定しようとしましたが、まだ選択色はありません。
を使用して、カスタムダイアログに埋め込まれたリストアイテムの選択時に色を変更できるため、作成したカラーリソースに問題がある可能性がありますlist.setSelector(R.color.blue);
。
同じ問題があります。追加で修正しました:
StateListDrawable drawable = new StateListDrawable();
drawable.addState(new int[] { android.R.attr.state_pressed }, new ColorDrawable(Color.BLUE));
view.setBackgroundDrawable(drawable);
のListView
アダプタgetView()
メソッド。
この質問への回答が遅れましたが、将来誰かが答えを探している場合に備えて、実際の答えを見つけました。ここでの他の2つの答えはうまくいきませんでした。
したがって、ドローアブルを背景として持つカスタム ListView 行を持つ ListView があります。これを行うと、長押ししたときのように、デフォルトの PRESSED の灰色がかったハイライトが点滅してオンにならないようになりました。何が起こっているかというと、ListView がビューの下にセレクターを描画しているということです。修正方法は次のとおりです。
onCreate で:
// this sets the selector/pressed drawable or you could use a color or whatever
listView.setSelector(getResources().getDrawable(R.drawable.listviewrow_pressed));
// this draws the selector drawable/color on top
listView.setDrawSelectorOnTop(true);