Android で選択後に ListView 項目をハイライト表示したままにする方法
Android では、ListView 項目の選択状態を維持すると、以下を提供することでユーザー エクスペリエンスを向上させることができます。現在の選択内容を明確に視覚的に示すインジケーター。ただし、開発者は、スクロールや ListView とのさらなる操作などの特定のイベントの後に、選択した項目の強調表示が失われるという問題に遭遇することがあります。
The Challenge
最近の開発者XML レイアウトで 2 つの ListView を操作しているときに、この問題が発生しました。 1 つの ListView にはクライアントのリストが表示され、もう 1 つは選択したクライアントに関する詳細情報を表示しました。最初の ListView でクライアントが選択されたとき、開発者は、対応する詳細で 2 番目の ListView を更新しながら、その強調表示された状態を保持したいと考えました。ただし、強調表示は保持されませんでした。
解決策
この問題に対処するには、いくつかのアプローチがあります。
1. XML 属性の使用:
XML レイアウト内で、選択した項目の強調表示を保持する必要がある ListView に次の属性を適用します:
android:choiceMode="singleChoice" android:listSelector="@drawable/list_selector"
@drawable/list_selector を、希望のハイライト色を指定するカスタム セレクター ドローアブルに置き換えます。
2.プログラムによるアプローチ:
または、次のコードを使用して、ListView の選択モードと強調表示色をプログラムで設定します。
listView.setChoiceMode(AbsListView.CHOICE_MODE_SINGLE); listView.setSelector(getResources().getDrawable(R.drawable.list_selector));
3.ビューの操作を避ける:
ListView のビューの一時的な性質により、イベント リスナーを介してビューを直接操作することは信頼性が低い可能性があることに注意することが重要です。ビューの背景に加えられた変更は、スクロールやその他のイベントが発生した後は保持されない場合があります。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3