Как прокрутить до положения recyclerView, которое заполняется FireBase ChildEventListener - PullRequest
0 голосов
/ 01 апреля 2019

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

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