Как реализовать бесконечный список с помощью RecyclerView внутри фрагмента - PullRequest
0 голосов
/ 11 июля 2020

Как мне загрузить больше в свой список RecyclerView, когда пользователь прокручивает ближе к низу?

Я смотрел эту страницу переполнения стека, но я все еще пытаюсь для реализации кода из ответа Kotlin в мой код.

Для лучшего идентификатора контекста, как вы, ребята, посмотрите мой предыдущий вопрос , это показывает вам, как я создал свой фрагмент в студии android (это было сделано нажатием на фрагмент (список) и выбором пустого фрагмента).

внутри моего onCreateView у меня есть этот фрагмент кода

view.list.addOnScrollListener(object : RecyclerView.OnScrollListener() {


            override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) {
                super.onScrolled(recyclerView, dx, dy)

                val contentHeight = view.list.height - (view.list.paddingTop + view.list.paddingBottom)

                val distanceToBottom = view.list.computeVerticalScrollRange() - view.list.computeVerticalScrollOffset() - contentHeight

                val metrics = DisplayMetrics()

                activity!!.windowManager.getDefaultDisplay().getMetrics(metrics)
                //val Measuredwidth = metrics.widthPixels
                val Measuredheight = metrics.heightPixels

                // everything looks like its in pixels. It is important that everything is one unit type to ensure accurate calculations
                // Once this is all finished i will ask a question in stack overflow on how to ensure its one unit type


                // using the screen height and timesing it by 2 to know when to load more data
                if (Measuredheight * 2 > distanceToBottom) {

                    Toast.makeText(view.list.context, "Scrolling $distanceToBottom, this is the screen height excluding the nav bar in pixels " + Measuredheight + " more content needs to be loaded", Toast.LENGTH_SHORT).show()

                    // Load more function to be placed here
                }


            }


        })

---------------------- Редактировать ---------------------

Я заглядывал в библиотеку подкачки и наткнулся на этот учебник , однако у меня все еще возникают проблемы с помещением кода во фрагмент. Это исходный код для учебника, так что это код, который я использовал в своем проекте .

То, что я думаю, я должен делать, находится внутри моего onCreateView, у меня есть чтобы разместить этот фрагмент кода

                adapter = UserAdapter()

                val itemViewModel = ViewModelProviders.of(view.list.context)
                    .get(UserViewModel::class.java)

                itemViewModel.userPagedList.observe(view.list.context, Observer {
                    adapter.submitList(it)
                })

                list.adapter = adapter

Однако я получаю сообщения об ошибках, и некоторые из них кажутся устаревшими. Может ли кто-нибудь показать мне код, который мне нужно использовать, чтобы иметь RecyclerView внутри фрагмента, чтобы я мог принять их ответ.

1 Ответ

1 голос
/ 11 июля 2020

То, что вы ищете, - это библиотека под названием Paging, она является частью Android Компонента архитектуры.

Вот codelab и примечание что пейджинг 3 отключен https://developer.android.com/topic/libraries/architecture/paging/v3-overview

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