RecyclerView内的RecyclerView滑动以删除子项

时间:2018-05-10 06:03:08

标签: java android android-recyclerview

我有一个非常基本的概念,它可能是一个我很想念的非常简单的解决方案。

我在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标题)?

1 个答案:

答案 0 :(得分:0)

经过漫长而艰难的时期,我设法弄明白了。

对于其他任何挣扎的人来说非常简单:

您有两个独立的适配器(1个用于标头+ recyclerItemView),另一个用于您的项目。

在标题一(称之为部分)中,您将看到一个界面,该界面将监视从您项目的适配器调用的onSwipe和OnDrag事件。

如果有兴趣,我会发布完整的代码。我认为这种方法比使用1个列表和一些分隔符来确定要使用的viewType要好得多。