0

カスタムの行レイアウトが取り込まれた ListView がある MonoDroid アプリケーションを作成しました。

カスタム行レイアウトには、3 つのテキストビュー (lblA、lblB、lblC) と非表示のイメージビュー (img) があります。

これまでのところ、リストビューは正しく入力され、すべてが機能しており、期待どおりに表示されています。

ただし、現在、アイテムを選択すると非表示のイメージビューが表示され、再度選択すると非表示になるという問題に直面しています。問題は、アイテムを選択してスクロールを続けると、行がそれ自体と表示されているイメージビューを無限に繰り返すように見えることです!

これは私が実装しようとしているカスタム ビジュアル選択ですが、期待どおりに機能していません。

アイテム選択のコードは次のとおりです。

private void listView_ItemClick(object sender, AdapterView.ItemClickEventArgs e){
    ListView lv = (sender as ListView);
    View row = lv.GetChildAt(e.Position);
    var item = row.FindViewById(Resource.Id.img);

    item.Visibility = (item.Visibility == ViewStates.Invisible) ? ViewStates.Visible :
                                                                      ViewStates.Invisible;
}

前もって感謝します!

4

1 に答える 1

0

私はそれを理解しました、私は実際に一生懸命考えすぎていました。

データ リストに「選択済み」ブール値を追加し、このブール値に基づいて表示を切り替えるようにアダプタを変更しました。

my_list[e.Position] を使用して配列に直接アクセスすることにより、アイテムのクリックに影響する値としてのブール値。

瞬間の視覚効果を変更するには、e.View からビューにアクセスするだけです。

于 2012-06-22T00:19:00.680 に答える