我正在创建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()创建新视图或重新使用convertedview,刷卡功能将继续工作。但是如果我第一次为每个孩子创建节点,并且下次在getview请求上创建节点,我发送了已准备好的节点,为什么滑动功能停止工作。
P.S。当我说,滑动功能停止工作时,GUI没有正确更新。
我有样品项目可供我使用,万一有人需要。或者如果有人需要代码的特定部分,我也可以提供相同的代码。
答案 0 :(得分:1)
答案 1 :(得分:0)
为了让它工作,我用以下方法实现它。我不确定,这是最好的方式。
我们在listview基本适配器中使用getViewTypeCount()
和getItemViewType()
函数为每行返回不同的视图类型。这样,在getView()
工具中使用时,它不会尝试使用相同的视图。
同样对于ExpandableListViewAdapter
,我们使用getChildTypeCount()
和getChildType()
来返回不同的类型。
这样,我就能实现我的目标。 我确信,这不是最优化的方式,因为它不允许,重新组合组件,但它适用于我的情况,因为我的应用程序不需要列表中的数千个组件。