У меня есть два фрагмента фида, которые заполняются моими данными Firebase с использованием дочернего прослушивателя событий.Я хочу сохранить позицию пользователя, когда он вернется к фрагменту.
Я пытался выяснить это уже два дня и просто не могу найти хорошее решение.
Iхотел бы прокрутить назад до позиции, но я не могу понять, где разместить вызов 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, и она все еще начинается сверху.