【问题标题】:How can I expand one item inside a list view but not all of them (Not using ExpandListView)?如何在列表视图中展开一项但不是全部(不使用 ExpandListView)?
【发布时间】:2016-04-12 21:39:42
【问题描述】:

我有一个简单的列表视图,每个项目都可以通过简单的触摸来选择。到目前为止,一切都很简单。 但是,在列表中的某处,其中一个项目必须在触摸时将新闻项目显示为子列表,然后对同一项目的第二次触摸必须隐藏/折叠子列表。

像这样:

  • 项目1
  • 项目2
  • 项目3 >
  • 项目4

点击 item3 后:

  • 项目1
  • 项目2
  • 项目3
  • 项目 31
  • 项目 32
  • 项目 33
  • 项目4
  • 它存在 ExpandListView 但我不认为在这里可以。 另一种方法是从 ArrayList 对象中添加/删除项目,然后调用 NotifyDataSetChanged,但这不是很有趣。 那么,最好的方法是什么?

    【问题讨论】:

      标签: android listview expandablelistview


      【解决方案1】:

      在这种情况下使用消耗性列表视图。

      【讨论】:

      • 但是对于 ExpandableListView,在我的示例中,item1、item2 和 item3 不能是“正常”行但必须是标题 (?)
      【解决方案2】:

      至少有两种方式

      1) Add them to the touched view hierarchy on clicked and remove after second click
      2) Add views to the xml, make VISIBILITY.GONE and change visibility on click events
      

      【讨论】:

      • 我不能使用简单的视图,因为项目的数量是动态的。我认为这个解决方案的构建会更加复杂。此外,我将丢失列表视图组件的所有属性。
      • ExpandableListView 与动态视图类型是要走的路
      【解决方案3】:

      您应该查看Advanced RecyclerView 库。您可以找到列表视图的所有组合。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-20
        • 1970-01-01
        • 2021-08-03
        • 2013-12-15
        • 1970-01-01
        • 2011-10-15
        • 2011-12-17
        • 1970-01-01
        相关资源
        最近更新 更多