我在RecyclerView中添加了onScrollListener,当我尝试向下滚动直到RecycleView的最底部不能激活OnScrollListener时,我想知道为什么
RVHomeLatest = v.findViewById(R.id.RV_HomeLatest);
adapterHomeLatest = new AdapterHomeLatest(getActivity(), modelHomeLatests, listenerHomeLatest);
final LinearLayoutManager llm = new LinearLayoutManager(getActivity(), LinearLayoutManager.VERTICAL, false);
RVHomeLatest.setLayoutManager(llm);
RVHomeLatest.setAdapter(adapterHomeLatest);
//Optimized
RVHomeLatest.setHasFixedSize(true);
RVHomeLatest.setItemViewCacheSize(20);
// Pagination
final boolean[] loading = {true};
final int[] pastVisiblesItems = new int[1];
final int[] visibleItemCount = new int[1];
final int[] totalItemCount = new int[1];
RVHomeLatest.addOnScrollListener(new RecyclerView.OnScrollListener()
{
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
{
if(dy > 0) //check for scroll down
{
visibleItemCount[0] = llm.getChildCount();
totalItemCount[0] = llm.getItemCount();
pastVisiblesItems[0] = llm.findFirstVisibleItemPosition();
if (loading[0])
{
Toast.makeText(getActivity(),"YYY", Toast.LENGTH_SHORT).show();
if ( (visibleItemCount[0] + pastVisiblesItems[0]) >= totalItemCount[0])
{
loading[0] = false;
Log.v("...", "Last Item Wow !");
//Do pagination.. i.e. fetch new data
}
}
}
}
});