如何滚动到由FireBase ChildEventListener填充的recyclerView的位置

时间:2019-04-01 10:20:19

标签: android firebase firebase-realtime-database android-recyclerview

我有两个供稿片段,这些片段由我的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来进行简单检查,但滚动条仍从顶部开始。

0 个答案:

没有答案