Android ViewPager内置回收视图

Android ViewPager内置回收视图,android,user-interface,android-recyclerview,android-viewpager,Android,User Interface,Android Recyclerview,Android Viewpager,我有一个RecyclerView,它的行是ViewPagers。 我在RecyclerView adapter的onBind()方法中设置了ViewPager的适配器。 但当我运行应用程序时,在滚动RecyclerView后,每个ViewPager中的页面数似乎不正确 下面是我的onBind()方法的主体 这是MyViewPagerAdapter类 class MyViewPagerAdapter(val pages:List<Page>) : PagerAdapter() { o

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

下面是我的onBind()方法的主体

这是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) {
    }
}
类MyViewPagerAdapter(val页面:列表):PagerAdapter(){
重写isViewFromObject(视图:视图,`object`:Any):布尔值{
返回`object`==view
}
重写fun getCount()=pages.size
覆盖元素(容器:视图组,位置:Int):任意{
val v:View=LayoutInflater.from(container.context)。充气(R.layout.View\u pager\u行,container,false)
容器。添加视图(v,位置)
//做一些绑定
返回v
}
覆盖项(容器:视图组,位置:Int,`object`:Any){
试一试{
container.removeView(`object`作为视图)
}捕获(e:例外){
}
}
附言:


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

请添加更多代码。请分享您的实现,我们都可以精确地帮助您。
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) {
    }
}