我有一个非常基本的概念,它可能是一个我很想念的非常简单的解决方案。
我在recyclerView
内基本上有一个recyclerView
。它完美无缺,一切顺利。
我最近决定添加一个滑动以删除recyclerView
。父母(最外面的)工作完美。但是,当我尝试在父recyclerView's
(对于子)适配器中执行完全相同的操作时,它返回错误的适配器(它返回父适配器)。
我认为这种情况正在发生,因为在孩子之前在父母身上检测到滑动(因为从技术上讲,孩子是父母的一部分),是否有办法禁用父recyclerView
的滑动检测它触动了一个孩子recyclerView
?例如,在父级中,我有一个textView作为标题,然后在它下方的recyclerView
。是否可以只有标题(textView
作为滑动,然后其余的将传递给孩子?
我按照本教程(https://www.androidhive.info/2017/09/android-recyclerview-swipe-delete-undo-using-itemtouchhelper/)减去JSON,只是简单地对数据进行硬编码,并在recyclerView
内添加adapter
,并为{{1}添加另一个适配器(构成孩子的细胞的内容)。
发生了一件非常奇怪的事情 - 当我禁用父母的滑动以完全删除时,只有1个随机部分适用于该孩子。我无法找到原因的模式。
基本上要在我调用textView
课程的方法时回顾一下,ItemTouchHelper
始终是父母的适配器,而不是孩子,因为正在检测滑动整个父母,而不是移动到孩子的viewHolder
;有没有办法防止或强迫它传递给孩子同时保留父母的所有其他元素(如recyclerView
标题)?
答案 0 :(得分:0)
经过漫长而艰难的时期,我设法弄明白了。
对于其他任何挣扎的人来说非常简单:
您有两个独立的适配器(1个用于标头+ recyclerItemView),另一个用于您的项目。
在标题一(称之为部分)中,您将看到一个界面,该界面将监视从您项目的适配器调用的onSwipe和OnDrag事件。
如果有兴趣,我会发布完整的代码。我认为这种方法比使用1个列表和一些分隔符来确定要使用的viewType要好得多。