0

我正在第三级创建具有滑动功能的 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 请求中创建节点,我发送了已经准备好的节点,为什么刷卡功能停止工作。

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

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

4

1 回答 1

0

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

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

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

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

于 2013-11-28T13:32:27.600 回答