3

このプロパティをListViewに設定した理由を誰かに教えてもらえますか?

mList.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

リストのアイテムは、それらの1つをクリックするたびにリロードされるようです。そのプロパティを削除すると、その動作は表示されません。

これをアクティビティのOnCreateViewメソッドで設定していますが、xmlでこれを設定して同じ結果を得ることができます。

<ListView
        android:id="@+id/lista"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="@string/per_lista"
        android:fadingEdge="none"
        android:divider="#e2e2e2"
        android:dividerHeight="1dp"
        android:choiceMode="singleChoice">
4

1 に答える 1

3

アイテムがチェック/オフされるたびに、ListViewはrequestLayout()を呼び出し、その子が再描画されます。ただし、アイテムがリロードされているわけではありません。アイテムがリロードされている場合は、さらに情報が必要になります。ご覧になりたい場合に備えて、ListViewソースはここにあります。

残念ながら、私にはわかりません。リストアイテムの再描画を回避できるかどうかさえわかりません。アイテムが再描画され、選択に応じて選択された状態を設定またはリセットできるため、これは意図された動作です。選択状態が変更された後にレイアウトのパス/再描画を要求しない独自のカスタムListViewのベースとして、いつでもソースコードを使用できます。

于 2013-03-04T18:25:25.270 に答える