Firestore 문서에서는 스크롤 시나리오에서 RecyclerView를 사용하여 페이지 매기기 구현에 대한 제한적인 지침을 제공합니다. 공식 문서를 따랐음에도 불구하고 사용자는 어려움을 겪을 수 있습니다.
Firestore의 데이터 페이지를 매기고 점진적으로 RecyclerView에 표시하려면 다음 단계를 따르세요.
// ... // 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 } } } } } }) } } // ...
제공된 솔루션은 스크롤 시나리오에서 RecyclerView의 페이지 매김을 효율적으로 처리합니다. 사용자가 스크롤할 때 적시에 데이터를 검색하여 원활한 로딩 경험을 제공합니다.
위 내용은 Android RecyclerView 스크롤링을 위해 Firestore 데이터를 효율적으로 페이지 매김하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!