Dokumentasi Firestore menyediakan panduan terhad untuk melaksanakan penomboran dengan RecyclerView untuk senario menatal. Walaupun mengikuti dokumentasi rasmi, pengguna mungkin menghadapi kesukaran.
Untuk menomborkan data daripada Firestore dan memaparkannya dalam RecyclerView secara berperingkat, ikut langkah berikut:
// ... // Define the query limit private val limit = 15 // Initial query val query = productsRef.orderBy("productName", Query.Direction.ASCENDING).limit(limit) query.get().addOnCompleteListener { task -> if (task.isSuccessful) { for (document in task.result!!) { val productModel = document.toObject(ProductModel::class.java) list.add(productModel) } productAdapter.notifyDataSetChanged() lastVisible = task.result!!.documents[task.result!!.size() - 1] // RecyclerView scroll listener recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrollStateChanged(recyclerView: RecyclerView, newState: Int) { super.onScrollStateChanged(recyclerView, newState) if (newState == AbsListView.OnScrollListener.SCROLL_STATE_TOUCH_SCROLL) { isScrolling = true } } override fun onScrolled(recyclerView: RecyclerView, dx: Int, dy: Int) { super.onScrolled(recyclerView, dx, dy) val linearLayoutManager = recyclerView.layoutManager as LinearLayoutManager val firstVisibleItemPosition = linearLayoutManager.findFirstVisibleItemPosition() val visibleItemCount = linearLayoutManager.childCount val totalItemCount = linearLayoutManager.itemCount if (isScrolling && (firstVisibleItemPosition + visibleItemCount == totalItemCount) && !isLastItemReached) { isScrolling = false val nextQuery = productsRef.orderBy("productName", Query.Direction.ASCENDING).startAfter(lastVisible).limit(limit) nextQuery.get().addOnCompleteListener { t -> if (t.isSuccessful) { for (d in t.result!!) { val productModel = d.toObject(ProductModel::class.java) list.add(productModel) } productAdapter.notifyDataSetChanged() lastVisible = t.result!!.documents[t.result!!.size() - 1] if (t.result!!.size() < limit) { isLastItemReached = true } } } } } }) } } // ...
Penyelesaian yang disediakan dengan cekap mengendalikan penomboran untuk RecyclerView dalam senario penatalan. Ia memastikan pengambilan data tepat pada masanya semasa pengguna menatal, memberikan pengalaman pemuatan yang lancar.
Atas ialah kandungan terperinci Bagaimana untuk Menghitamkan Data Firestore dengan Cekap untuk Android RecyclerView Scrolling?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!