4

是否可以以某种方式删除视图或适配器MergeAdapter?我会尝试扩展它并从中删除视图,pieces但它是private. 或者也许有另一种解决方案可以在此适配器中显示/隐藏视图?我尝试将其layout_height设置为零并将可见性设置为View.GONE,但它仍然显示空列表项。提前致谢。

4

4 回答 4

8

要删除视图或适配器,MergeAdapter请使用以下方法:

setActive()在您的 mergeAdapter 实例上。

例如:要从Textview(merAdapter) 中删除 (mytextView),MergeAdapter请使用:

merAdapter.setActive(mytextViiew,false);

并再次启用它(使其可见)使用:

merAdapter.setActive(mytextViiew,true);

有关详细信息,请参阅MergeAdapter文档:

https://github.com/commonsguy/cwac-merge

于 2014-03-06T07:53:32.050 回答
6

是否可以以某种方式从 MergeAdapter 中删除视图或适配器?

暂时没有,抱歉。如果您想试一试,添加(从集合中删除并调用notifyDataSetChanged()更新)应该不会太难。AdapterView欢迎投稿!:-)

于 2011-08-04T21:27:32.683 回答
1

您的 MergeAdapter 应该有一个名为getCount().. 如果我理解正确的方法,从那里返回零可能会解决您的问题..

于 2011-08-04T10:04:52.157 回答
1

扩展 Mark Murphy 的回答,我认为这就像将此方法添加到 MergeAdapter 一样简单:

public void removeAdapter(ListAdapter la) {
    pieces.remove(la);
  }

remove()获取一个对象,如果该对象包含在片段列表中,它将为您进行所有必要的测试和删除。您可以出于自己的目的将此返回 bool 或其他内容,但我没有这样的需要。

然后只需调用类似:

int view_to_remove = *AN_INT*
adapter.removeAdapter(listAdapter.getAdapter(view_to_remove));
adapter.notifyDataSetChanged();
于 2011-11-02T20:44:48.270 回答