我試圖用recyclerview實現無限滾動,它工作正常。但是,我注意到當內容大小小於屏幕高度時,onScrolled永遠不會被調用。我想在滾動時加載更多,但我無法檢測到向下滾動手勢,因爲onScrolled永遠不會被調用,因此我無法獲取dy值。我想知道:如果內容比屏幕高度小,無限滾動recyclerview onScrolled不會觸發
1)在這種情況下我怎樣才能得到滾動方向 2)這種情況的最佳做法是什麼?每次服務呼叫都會收到一定數量的項目。如果返回的項目數量不能填滿屏幕會發生什麼?
recyclerView.addOnScrollListener(new RecyclerView.OnScrollListener()
{
int lastVisibleItemPosition, visibleItemCount, totalItemCount;
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
{
super.onScrolled(recyclerView, dx, dy);
if(dy>0)
{
visibleItemCount = recyclerLayoutManager.getChildCount();
totalItemCount = recyclerLayoutManager.getItemCount();
lastVisibleItemPosition = recyclerLayoutManager.findLastVisibleItemPosition();
if (lastVisibleItemPosition >= totalItemCount)
{
if (!loading && dy>0 && moreToload)
{
loadMore();
}
}
}
}
});
謝謝!
嘗試將更多項目加載到您的ListView以使內容大小超過屏幕高度 – GuilhermeFGL