RecyclerView嵌套ViewPager2,点击事件的具体处理逻辑写在哪里比较好
里层的ViewPager2Item的点击事件的具体处理逻辑通过自定义点击监听器传到RecyclerView的Adapter的onBindViewHolder(),
我目前的水平只能理解到这里了,甚至这样做的目的到底是啥都不知道,只是看到过说是为了防止Adapter中的代码太过沉余,可是这种双层嵌套的不是把逻辑代码都传给外部的Adapter了嘛???小小的脑袋大大的疑惑,百度了好久都没搞清楚。。。
所以是不是有方法将里层Adapter的自定义监听器接口直接在Activity或Fragment中实现(就是跳过外层的Adapter)
还是说再在外层的Adapter定义自定义的接口,然后再在Activity或Fragment中实现接口,编写具体的逻辑(里层Adapter的接口传递两次)
有没有大神能不吝赐教鸭!
//ViewPager2的Adaptert内给image设置自定义的监听器
holder.bannerImage.setOnClickListener {
onBannerClickListener?.setOnBannerClickListener(bannerList, position)
}
fun setOnBannerClickListener(onBannerClickListener: OnBannerClickListener) {
this.onBannerClickListener = onBannerClickListener
}
interface OnBannerClickListener {
fun setOnBannerClickListener(bannerList: List<Banner>, position: Int)
}
/*
* RecyclerView的Adapter的onBindViewHolder()里实现自定义接口并处理具体的逻辑
* 但是这样的话Recycler View的Adapter要处理的逻辑就太多了,不知道会不会有什么影响
* 我不知道要怎么处理了
*
* */
adapter.setOnBannerClickListener(object : BannerAdapter.OnBannerClickListener {
override fun setOnBannerClickListener(bannerList: List<Banner>, position: Int) {
val realPosition = position % bannerList.size
"You Click Banner $realPosition".showToast()
}
})
还是要好好理解 ”回调“
点击事件的具体处理逻辑写在哪里比较好
谁的点击事件?