【发布时间】:2018-12-22 01:30:58
【问题描述】:
我试图让 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)
}
【问题讨论】:
-
检查this 回答我认为它可能对你有帮助。
标签: android android-recyclerview viewmodel smooth-scrolling