我有两个供稿片段,这些片段由我的Firebase数据使用子事件监听器填充。 当用户导航回该片段时,我想保留其位置。
我已经尝试了两天,但找不到一个好的解决方案。
我想返回到该位置,但是如果我需要先使用子事件侦听器填充它,则我不明白将scrollToPosition调用放置在何处。
这是我目前的收听者:
private fun listenToImages(currentUser: Users) { //This needs to be fixed to not update in real time. Or should it?
galleryAdapter.clear()
val ref = FirebaseDatabase.getInstance().getReference("/images")
ref.addChildEventListener(object : ChildEventListener {
override fun onChildAdded(p0: DataSnapshot, p1: String?) {
val singleImageFromDB = p0.child("body").getValue(Images::class.java)
if (singleImageFromDB != null) {
val completedFollowedAccountsList = sharedViewModelFollowedAccounts.followedAccounts
for (accountUid in completedFollowedAccountsList) {
if (accountUid == singleImageFromDB.photographer) {
if (!singleImageFromDB.private) {
galleryAdapter.add(LinearFeedImage(singleImageFromDB, currentUser))
if (galleryAdapter.getItemCount() == 3){
galleryLayoutManager.scrollToPosition(3)
}
}
}
}
}
}
override fun onCancelled(p0: DatabaseError) {
}
override fun onChildMoved(p0: DataSnapshot, p1: String?) {
}
override fun onChildChanged(p0: DataSnapshot, p1: String?) {
}
override fun onChildRemoved(p0: DataSnapshot) {
}
})
}
正如您在代码中看到的那样,我什至尝试通过将滚动条的位置设置为3来进行简单检查,但滚动条仍从顶部开始。