0

我创建了一个 MonoDroid 应用程序,其中我有一个 ListView 填充了自定义行布局。

自定义行布局有 3 个 textview:lblA、lblB、lblC 和一个不可见的 imageview: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 回答