У меня есть RecyclerView, который имеет ViewPager в качестве строк. Я установил адаптер ViewPager в методе onBind () RecyclerView Adapter. Но когда я запускаю приложение, похоже, что число страниц внутри каждого 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:
Я наконец-то использовал RecyclerView с горизонтальными LinearLayoutManager и SnapHelper для имитации ViewPager, и проблема решена.