首页 > 解决方案 > RecyclerView 中的 Android ViewPager

问题描述

我有一个 RecyclerView,它的行是 ViewPagers。我在 RecyclerView Adapter 的 onBind() 方法中设置了 ViewPager 的适配器。但是当我运行该应用程序时,看起来每个 ViewPager 中的页面数在滚动 RecyclerView 后变得不正确。

这是我的 onBind() 方法的主体

val adapter = MyViewPagerAdapter(itemList[position])
myViewPager.adapter = adapter

这是 MyViewPagerAdapter 类

class MyViewPagerAdapter(val pages:List<Page>) : PagerAdapter() {

override fun isViewFromObject(view: View, `object`: Any): Boolean {
    return `object` == view
}

override fun getCount() = pages.size

override fun instantiateItem(container: ViewGroup, position: Int): Any {
    val v: View = LayoutInflater.from(container.context).inflate(R.layout.view_pager_row, container, false)
    container.addView(v, position)
    // do some bindings
    return v
}

override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
    try {
        container.removeView(`object` as View)
    } catch (e: Exception) {
    }
}

PS:

最后我用了一个带有水平LinearLayoutManager和SnapHelper的RecyclerView来模拟一个ViewPager,问题就解决了。

标签: androiduser-interfaceandroid-recyclerviewandroid-viewpager

解决方案


推荐阅读