gpt4 book ai didi

android - 为什么 addOnScrollListener 不起作用?

转载 作者:行者123 更新时间:2023-11-30 00:29:27 24 4
gpt4 key购买 nike

我尝试在滚动到 recyclerView 底部时实现加载更多当我的 XML 只有 recyclerView 但当我把它放到 scrollview 和 setNestedScrollingEnabled(false) 它不工作时它工作

XML“要求 ”- 橙色区域为静态布局- 绿色区域为动态元素当我滚动到底部橙色区域时,也必须向下滚动

    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'它总是0

最佳答案

dy 为 0 因为 RecyclerView 没有滚动,它的内容适合 ScrollView 。因此,正在滚动的 View 是 ScrollView

这不是一个特别好的实现,因为 RecyclerView 中的所有 View 同时膨胀,这违背了 RecyclerView 重用 的目的ViewHolders 当用户滚动并动态膨胀 View 中的元素以节省内存使用量时。

尝试固定 RecyclerView 的高度,不要在 height 属性中使用 wrap_contentmatch_parent你的 RecyclerView

关于android - 为什么 addOnScrollListener 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44719703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com