ListView中的可扩展项

时间:2018-12-20 19:41:34

标签: java android android-listview android-linearlayout expandablelistview

我正在为自己写一个 ListView ,其中将包含多种类型的项目。我已经使用ArrayAdapter ListView 完成了此操作,现在我的问题是我需要在适配器中放置一些可以扩展的Item,并且将具有任何类型的内部Item。现在的问题是我该怎么做?我知道我可以使用 ExpandableListView ,但不需要扩展某些项目。我看到了post的类似内容,该人员建议使用 ExpandableListView 或“自定义项目”,我想执行“自定义项目”,但我担心的是,答案的OP引用了此内容

  

如果项目数量较少,请考虑使用线性布局进行外观   例如列表视图和最后一项的另一个linearlayout。

我不确定“低”的含义是什么?会导致延迟吗?

  

所以我的问题是做到这一点的最佳方法是什么?我要放东西   在具有多种类型的ListView中,其中一种类型可以   展开并具有可再次包含相同类型和   等等。

编辑:由于你们2中的人对我想要的东西感到困惑。我想在ArrayAdapter中进行以下操作

Item
Item
Item
ExpandableItem {
   Item
   Item
   Item
   Item
}
Item
Item

我正在尝试使某些项目扩展为在其中包含更多项目,并控制内部项目等的onClick。

2 个答案:

答案 0 :(得分:0)

关于“低”的含义:我认为这与性能有关,但是今天的设备要比2013年撰写链接文章时的设备要好-也许您的方法永远不会遇到呆滞的UI。当然,这不仅取决于您的UI结构,还取决于您将显示的数据类型(视频还是仅文本?),还取决于其他因素,例如设备是否必须在后台执行繁重的工作。

RecyclerView被开发为“更好的ListView”,因此,如果性能可能成为问题,那么也许是个不错的选择。 (两个ViewGroup的适配器可以处理不同的View类型,但是RecyclerView提供了更好的方式来显示单个项目的更改并自定义更改动画,这是它的另一点)

  

我该怎么做?

  • 展开式和扁平式项目具有不同的View类型
  • 可以通过使用某种类型的动画(或{{1来“手动”扩展/收缩View(使用ListView时,这是您唯一的选择) }}框架),但您始终必须...
  • 跟踪每个可扩展项的扩展状态(例如在适配器中),并分别在TransitiongetView()中使用它们。

答案 1 :(得分:-1)

在单击任何项​​目时添加另一个ListView,例如RecyclerView。