Я использую RecyclerView в ViewPager, и когда я хочу прокрутить 30-ю позицию текущей страницы, он применяется скорее на другой странице. У меня есть другой метод в вызове адаптера ползунка scrollTo в этом методе Icall smoothScrollToPosition . Метод scrollTo - это вызов, когда я нажимаю на кнопку. Мне нужна помощь, пожалуйста.
MainActivity
val pager = findViewById<ViewPager>(R.id.view_pager)
val adapter = SlideAdapter(this)
pager.adapter = adapter
findViewById<Button>(R.id.button).setOnClickListener {
adapter.scrollTo(30)
}
SliderAdapter
lateinit var recyclerView: RecyclerView
fun scrollTo(position: Int) {
recyclerView.smoothScrollToPosition(position)
}
override fun isViewFromObject(view: View, `object`: Any): Boolean = view == `object` as RelativeLayout
override fun getCount() = 5
override fun instantiateItem(container: ViewGroup, position: Int): Any {
val view = LayoutInflater.from(context)
.inflate(R.layout.slide, container, false) as RelativeLayout
val list = mutableListOf<String>()
for (i in 0..50)
list.add("Element $i")
val viewAdapter = Adapter(context, list)
val viewManager = LinearLayoutManager(context)
recyclerView = view.findViewById(R.id.recyclerView)
recyclerView.apply {
setHasFixedSize(true)
layoutManager = viewManager
adapter = viewAdapter
}
container.addView(view)
return view
}
override fun destroyItem(container: ViewGroup, position: Int, `object`: Any) {
container.removeView(`object` as RelativeLayout)
}