Как заставить RecyclerView прокручивать до последней позиции в onCreate? - PullRequest
0 голосов
/ 22 декабря 2018

Я пытался просто заставить RecyclerView переместиться в последнюю позицию при запуске фрагмента, но не могу найти решение.Приведенный ниже код прекрасно работает, когда новая «Pagina», вставленная в базу данных, перемещается в последнюю позицию.Но, если я закрою и снова открою, он вернется к началу.Итак, как заставить работать плавную прокрутку при создании фрагмента?

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)

    appDatabase = AppDatabase.getDatabase(requireContext())

    val smoothScroller = object : LinearSmoothScroller(context) {
        override fun getVerticalSnapPreference(): Int = SNAP_TO_START
    }
    viewModelo = ViewModelProviders.of(this).get(ViewModelo::class.java)
    // Create the observer which updates the UI.
    val listPaginas = Observer <List<Pagina>> {
        // Update the UI, in this case, a TextView.

        recyclerViewAdapter?.addItens(it)  
            if (it.size < 1) {               
            smoothScroller.targetPosition = it.size
            } else {
               smoothScroller.targetPosition = it.size-1
        }      

        recyclerView?.layoutManager?.startSmoothScroll(smoothScroller)
    }

    viewModelo?.todasPaginas()?.observe(this, listPaginas)

}

1 Ответ

0 голосов
/ 22 декабря 2018

Попробуйте изменения ниже, это сработало!

LinearLayoutManager manager = new LinearLayoutManager(Application.Context);
manager.setStackFromEnd(true); 
mRecyclerView.SetLayoutManager(manager);
...