Android 为什么addOnScrollListener不起作用?
当滚动到recyclerView的底部时,我尝试实现更多的加载 当我的XML只有recyclerView时,它是有效的,但当我将它放到scrollview并设置NestedScrollingEnabled(false)时,它就不起作用了 “要求” -橙色区域是静态布局 -绿色区域是动态项目 当我翻到底部时,橙色区域也必须向下滚动Android 为什么addOnScrollListener不起作用?,android,android-recyclerview,Android,Android Recyclerview,当滚动到recyclerView的底部时,我尝试实现更多的加载 当我的XML只有recyclerView时,它是有效的,但当我将它放到scrollview并设置NestedScrollingEnabled(false)时,它就不起作用了 “要求” -橙色区域是静态布局 -绿色区域是动态项目 当我翻到底部时,橙色区域也必须向下滚动 mAdapter = new RecyclerViewCommentAdapter(commentList, userInformationList);
mAdapter = new RecyclerViewCommentAdapter(commentList, userInformationList);
mRecyclerViewComment = (RecyclerView) rootView.findViewById(R.id.recyclerViewComment);
mRecyclerViewComment.setNestedScrollingEnabled(false);
mRecyclerViewComment.setHasFixedSize(true);
mRecyclerViewComment.setItemViewCacheSize(30);
mRecyclerViewComment.setDrawingCacheEnabled(true);
mRecyclerViewComment.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH);
mLayoutManager = new LinearLayoutManager(mContext);
mRecyclerViewComment.setLayoutManager(mLayoutManager);
mRecyclerViewComment.setItemAnimator(new DefaultItemAnimator());
mRecyclerViewComment.setAdapter(mAdapter);
// Scroll //
mRecyclerViewComment.addOnScrollListener(new RecyclerView.OnScrollListener()
{
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy)
{
Log.d(getClass().getName(), "dy = " + dy);
if(dy > 0) //check for scroll down
{
visibleItemCount = mLayoutManager.getChildCount();
totalItemCount = mLayoutManager.getItemCount();
pastVisiblesItems = mLayoutManager.findFirstVisibleItemPosition();
Log.d(getClass().getName(), "totalItemCount = " + totalItemCount);
if (loading)
{
if ( (visibleItemCount + pastVisiblesItems) >= totalItemCount && (visibleItemCount + pastVisiblesItems) >= TOTAL_FIRST_LOAD)
{
loading = false;
loadMoreKey();
}
}
}
}
});
}
我尝试调试'dy',它总是0dy是0,因为
RecyclerView
没有滚动,它在滚动视图中适合它的内容。因此,正在滚动的视图是ScrollView
这不是一个特别好的实现,因为RecyclerView
中的所有视图都同时膨胀,这与RecyclerView
的目的不符,后者是在用户滚动并动态膨胀视图中的元素以节省内存使用时重用viewholder
请尝试固定
RecyclerView
的高度,不要在RecyclerView的height
属性中使用wrap\u content
或match\u parent
,谢谢回答,那么,我应该如何使用RecyclerView实现另一个布局滚动呢?您可以分享在ScrollView中放置RecyclerView的要求吗?感谢@basilisk签出我编辑的答案从设计来看,您似乎不需要滚动视图。如果希望橙色区域与列表一起滚动,则将其添加为RecyclerView中的另一项(请参阅)。如果希望保持静态而不滚动,请将两个视图都放在线性布局中。在大多数情况下,嵌套滚动不是一个好主意。@basilisk解决了这个问题,非常感谢XD