【问题标题】:3 level expandable list view with swipe feature具有滑动功能的 3 级可扩展列表视图
【发布时间】:2013-09-17 18:40:23
【问题描述】:

我正在创建 3 级可扩展列表,在 3 级具有滑动功能。

在使用缓存时,我在 3 级 swipelistview 上遇到了滑动功能的问题。

对于刷卡,我使用“47deg/android-swipelistview”https://github.com/47deg/android-swipelistview/ 库。 为了创建 3 级可扩展列表,我使用了来自 http://mylifewithandroid.blogspot.in/2011/02/3-level-expandable-lists.html 的代码。 我在 3 个地方使用了缓存概念:1. 2 级可扩展列表,2. 3 级 swipelistview 3. swipelistview 节点。这样,它在滚动/展开/折叠可展开列表时提供了良好的性能。

但在那个时候,刷卡功能停止工作。如果我在 swipelistview 节点级别停止使用缓存(在 swipelistview 适配器的 getview() 函数内),则滑动功能可以正常工作。

我的问题是,如果我每次在 swipelistview 类的 getview() 处创建新视图或重用已转换视图,滑动功能将继续工作。但是如果我第一次只为每个孩子创建节点,下一次在 getview 请求中创建节点,我发送了已经准备好的节点,为什么刷卡功能停止工作。

附:当我说滑动功能停止工作时,GUI 没有正确更新。

我有可用的示例项目,以防万一有人需要。或者如果有人需要代码的特定部分,我也可以提供。

【问题讨论】:

  • 嘿...你是怎么解决你的问题的?你能把你的代码和解决方案一起发给我吗?
  • 你解决了你的问题吗?我也有同样的问题 stackoverflow.com/questions/18765638/... 如果你解决了你的问题,请帮助我。

标签: android caching expandablelistview swipeview


【解决方案1】:

为了让它工作,我用以下方法实现了它。我不确定,这是否是最好的方法。

  • 我们在 listview 基本适配器中使用了 getViewTypeCount()getItemViewType() 函数来为每一行返回不同的视图类型。这样,在getView() 设施中使用时,它不会尝试使用相同的视图。

  • ExpandableListViewAdapter类似,我们使用getChildTypeCount()getChildType()返回不同的类型。

通过这种方式,我能够实现我想要的。 我敢肯定,这不是最优化的方式,因为它不允许组件的可重用性,但它适用于我的情况,因为我的应用程序不需要列表中的数千个组件。

【讨论】:

    猜你喜欢
    • 2015-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-16
    • 1970-01-01
    相关资源
    最近更新 更多