0

我正在构建几个自定义 ListViews,其中包含在单击时展开的 listViewItems。我做了我的第一个没有大麻烦,并且 listViewItems 在点击时正确展开。

现在我正在构建另一个 ListView,不同之处在于它包含不止一种项目,因此我发现让 adaper 包含视图列表而不是数据列表并在提示时创建视图很方便getView(XX) 为他们服务。

一切正常,除了新列表中的项目在我来回交换活动以重绘之前不会扩展。我已经测试模仿第一个列表视图中的实现(有几个缺点),这样可以让它们正确重绘。

主要区别是这两条线,第一条有效,第二条不重绘。

return new TransactionChild(context, attrs, transactions.get(position));

.

return (View) children.get(position); 

解决此问题的最佳方法是什么?尝试在整个列表上强制重绘(在展开视图时将其余部分向下移动......)?还是我可以用 ListView 或适配器做一些更整洁的事情?

帮助会很棒:D

4

1 回答 1

0

您可以使用 ExpandableListView ,其中组没有任何子级并且在组打开和关闭时具有不同的布局。

如果使用普通的 ListView,我建议您使用 Adapter 的 getItemViewType() 方法,因此您可以保持正常的项目列表并单击,然后在 getView 上检查类型并更改布局。在单击侦听器上,您可以更改单击的项目的类型并通知更改的数据。

于 2013-04-23T13:14:50.173 回答