簡體   English   中英

Android TV - 如何使用 Leanback Horizo​​ntalGridView 實現無休止的 RecyclerView

[英]Android TV - How to implement endless RecyclerView like with Leanback HorizontalGridView

我想不出在我的 Android TV 應用程序中實現分頁的解決方案。 我正在使用 Leanback 支持庫 - HorizontalGridView來列出項目。 HorizontalGridView是從RecyclerView擴展而來的,但它的布局管理器( android.support.v17.leanback.widget.GridLayoutManager )沒有實現findLastVisibleItemPosition()方法。

如何為HorizontalGridView實現分頁。 有沒有辦法監聽HorizontalGridView到達其內容末尾的事件(或者即使我們使用ListRowPresenter )?

您可以參考此Endless Scrolling with AdapterViews 和 RecyclerView文檔。 根據本教程,要在用戶向底部滾動時實現獲取更多數據並附加到列表末尾,請使用RecyclerViewaddOnScrollListener()並利用指南中的EndlessScrollViewScrollListener文檔添加onLoadMore方法。

我有完全相同的問題,我認為我們可以使用OnChildViewHolderSelectedListener

recyclerView.addOnChildViewHolderSelectedListener(
    object : OnChildViewHolderSelectedListener() {
        override fun onChildViewHolderSelected(
            parent: RecyclerView,
            child: RecyclerView.ViewHolder,
            position: Int,
            subposition: Int
        ) {
            super.onChildViewHolderSelected(parent, child, position, subposition)
            if (position != RecyclerView.NO_POSITION) {
                parent.layoutManager?.let { layoutManager ->
                    Logger.d(
                        "Selected position $position of ${layoutManager.itemCount - 1}"
                    )
                    if (position > layoutManager.itemCount - 1 - THRESHOLD) {
                        Logger.d("Should load more items")
                    }
                }
            }
        }
    }
)

companion object {
    private const val THRESHOLD = 3
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM