Внутри RecyclerView.Adapter прокрутите до позиции - PullRequest
0 голосов
/ 22 октября 2018

Мне нужно прокрутить до положения X после регистрации прослушивателя щелчка внутри класса RecyclerView.Adapter !!

    class MyAdapter(context: Context, mRV: RecyclerView, mLayoutm: LinearLayoutManager) {
    ...

         override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
              holder.itemView.XY_button.setOnClickListener { // Button inside a cell  

                    mRV.layoutManager.scrollToPosition(x)  // Not work
                    mRV.scrollToPosition(x)      // Not work
                    mLayoutm.scrollToPosition(x) // Not work
                    (context as MyRVClass).mRV.mLayoutm.scrollToPosition(x) // Not work
                    (context as MyRVClass).mRV.scrollToPosition(x) // Not work
                    // it does't work with smoothScrollToPosition() too
              }    
         }
    }

PS: я решил эту проблему в swift / iOS с протоколом делегата, есть ли у насчто-то эквивалентное в андроиде / котлине?

1 Ответ

0 голосов
/ 22 октября 2018

Создайте этот метод в классе вашей деятельности, где RecyclerView:

fun scrollToPosition(position: Int) {
    rv.scrollToPosition(position)
}

заменить rv с идентификатором RecyclerView

и внутри слушателя добавьте это:

val myActivity: MainActivity = context as MainActivity
myActivity.scrollToPosition(x)

замените MainActivity названием деятельности и x позицией, на которую следует перейти.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...