liangjingkanji / BRV

[使用文档] Android 快速构建 RecyclerView, 比 BRVAH 更简单强大
http://liangjingkanji.github.io/BRV/
MIT License
2.51k stars 317 forks source link

RV 嵌套 RV,child RV 如何 find 父 RV 条目的位置? #336

Closed timmy-gzw closed 1 year ago

timmy-gzw commented 1 year ago

问题描述

当 RV 嵌套 RV,child RV item 点击的时候如何 find 父 RV item 的position? findParentPosition 都是返回-1.

期望行为

下面是使用 Demo NestedListFragment 复现的场景. 期望就是希望在 ItemNestedHorizontalRvBinding item 点击的时候, 拿到 NestedListModel 的数据

如何复现

任何业务相关问题没有fork仓库复现问题一律无法解决, 凭空猜测只会让问题晦涩难懂, 大量耽误项目维护时间

截图

异常堆栈信息或者手机截图/视频(拖拽到输入框即可上传)

微信截图_20230212124246

liangjingkanji commented 1 year ago

鉴于此问题过于简单且和本框架无关系, 建议加群挨骂

  1. 此问题和本框架无关系, 你可以直接搜索rv如何解决

  2. findParentPosition分组情况下查询上级分组的位置, 和你的需求没关系


以下基于rv基础知识 生命周期

  1. 请在onBind里面获取并存储layoutPosition: 因为Item还未显示所以onCreate无法获取真实position
  2. 在onCreate里面设置点击事件: 因为onBind设置点击事件会重复设置
onCreate {
    getBinding<ItemNestedHorizontalRvBinding>().rv.setup {
        addType<String>(R.layout.item_simple_horizontal)
        R.id.item.onClick {
            val parentPosition = getModel<Model>().parentPosition
            Log.i("日志","父rv位置 = $parentPosition")
        }
    }
}
onBind {
    getModel<Model>().parentPosition = layoutPosition
}
timmy-gzw commented 1 year ago

哈哈哈哈,这就加群

deng81416754 commented 9 months ago

企业微信截图_16975146366382

deng81416754 commented 9 months ago

NestedListFragment rv嵌套rv 遇到了 onCreate 中拿到的 layoutPosition 始终为 -1

liangjingkanji commented 9 months ago

你和他有异曲同工之妙,你加群问下大家

deng81416754 commented 9 months ago

好的, 这就去加群挨骂

Yumikolab commented 4 months ago

群在哪里?