正确隐藏listview中的项目

7 android hide android-listview

我想在列表视图中显示/隐藏项目.目前我通过迭代适配器的数据来做到这一点.如果某个索引处的项匹配某些条件,则调用此行:

listView.getChildAt(index).setVisibility(View.GONE);
Run Code Online (Sandbox Code Playgroud)

项目不可见,但仍留有空白(令人惊讶的是View.GONE和View.INVISIBLE在这种情况下的行为相同).我希望实现与从适配器删除项目并被notifyDataSetChanged()调用相同的效果,但我不想修改基础数据,只需隐藏项目.

小智 5

我已经实现这个作为Tonithy表明这里.在适配器的getView方法的开头添加了一个if子句,它检查item是否匹配条件以隐藏.如果是,getView返回"null布局".

当我想要隐藏项目时,我设置了一个条件并在listview上调用.invalidateViews().