从MergeAdapter中删除视图

时间:2011-08-04 10:00:44

标签: android commonsware-cwac

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

4 个答案:

答案 0 :(得分:8)

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

您的mergeAdapter实例上的

setActive()

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

merAdapter.setActive(mytextViiew,false);

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

merAdapter.setActive(mytextViiew,true);

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

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

答案 1 :(得分:6)

  

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

目前不对,抱歉。添加它应该不会太难(从集合中删除它并调用notifyDataSetChanged()来更新AdapterView)如果你想要它。欢迎捐款! : - )

答案 2 :(得分:1)

你的MergeAdapter应该有一个名为getCount()的方法..如果我理解你的话,从那里返回零可以解决你的问题..

答案 3 :(得分: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();