【发布时间】:2018-05-10 06:03:08
【问题描述】:
我有一个非常基本的概念,它可能是我缺少的一个非常简单的解决方案。
我基本上在recyclerView 中有一个recyclerView。它运行良好,一切顺利。
我最近决定向recyclerViews 添加一个滑动删除功能。父母(最外面的)完美地工作。但是,当我尝试在父 recyclerView's(对于子)适配器中执行完全相同的操作时,它会返回错误的适配器(它会返回父适配器)。
我认为发生这种情况是因为在孩子之前在父母身上检测到滑动(因为从技术上讲,孩子是父母的一部分),有没有办法为父母 recyclerView 禁用滑动检测,如果它是触摸的一个孩子recyclerView?例如,在父级中,我有一个 textView 作为标题,然后是 recyclerView 正下方。是否可以只有标题(textView 充当滑动,然后其余部分将传递给孩子?
我按照本教程 (https://www.androidhive.info/2017/09/android-recyclerview-swipe-delete-undo-using-itemtouchhelper/) 减去 JSON 并为简单起见仅对数据进行硬编码,并在 adapter 内添加 recyclerView 并为 textView 添加另一个适配器(内容以弥补孩子的细胞)。
发生了一件非常奇怪的事情 - 当我禁用父母的滑动以完全删除时,只有 1 个随机部分适用于孩子。我找不到解释原因的模式。
基本上回顾一下当我调用我的ItemTouchHelper 类的方法时,viewHolder 始终是父适配器而不是子适配器,因为在整个父适配器上检测到滑动而不是移动到孩子的 recyclerView ;有没有办法阻止或强制它传递给孩子,同时将所有其他元素(如 textView 标头)保留在父母身上?
【问题讨论】:
标签: java android android-recyclerview