Endless RecyclerView Loading 不停加载不滚动
Endless RecyclerView Loading keeps loading without scrolling
我有这种情况。我实现了 endless scrolling with RecyclerView。通常情况下,当当前滚动位置下方只有 5 个项目时,应该加载新项目,但事实并非如此。
而是从 API 加载第一组项目后,立即发送(不滚动)、接收和解析另一组项目。之后发送另一个请求(仍然没有滚动)并解析。此过程将继续(不滚动)直到应用程序退出。
我的 RecyclerView
mLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new FadeInLeftAnimator());
recyclerView.setNestedScrollingEnabled(false);
adapter = new PostAdapter(mPostItemList, getActivity());
recyclerView.setAdapter(adapter);
recyclerView.addOnScrollListener(new EndlessRecyclerViewScrollListener( mLayoutManager) {
@Override
public void onLoadMore(final int page, int totalItemsCount, RecyclerView view) {
Log.w(TAG, "onLoadMore called");
morePostsUrl = postUrl + "&page=" + page;
getMorePostArray(morePostsUrl, true, false);
}
});
我发现问题是 RecyclerView 有一个 NestedScrollView 作为父级。当我删除 NestedScrollView 时,这个问题就停止了。
事实证明,如果您的布局中有 <ScrollView>
(不仅是 NestedScrollView
),这是一个问题。
删除 ScrollView
解决了我的问题!
顺便说一句:这只是在旧手机上测试时出现的问题...
已使用 Samsung Galaxy S3 进行测试 -> 您必须删除 ScrollView
使用 Samsung Galaxy S8 测试 -> 适用于 ScrollView
我有这种情况。我实现了 endless scrolling with RecyclerView。通常情况下,当当前滚动位置下方只有 5 个项目时,应该加载新项目,但事实并非如此。
而是从 API 加载第一组项目后,立即发送(不滚动)、接收和解析另一组项目。之后发送另一个请求(仍然没有滚动)并解析。此过程将继续(不滚动)直到应用程序退出。
我的 RecyclerView
mLayoutManager = new LinearLayoutManager(getActivity());
recyclerView.setLayoutManager(mLayoutManager);
recyclerView.setItemAnimator(new FadeInLeftAnimator());
recyclerView.setNestedScrollingEnabled(false);
adapter = new PostAdapter(mPostItemList, getActivity());
recyclerView.setAdapter(adapter);
recyclerView.addOnScrollListener(new EndlessRecyclerViewScrollListener( mLayoutManager) {
@Override
public void onLoadMore(final int page, int totalItemsCount, RecyclerView view) {
Log.w(TAG, "onLoadMore called");
morePostsUrl = postUrl + "&page=" + page;
getMorePostArray(morePostsUrl, true, false);
}
});
我发现问题是 RecyclerView 有一个 NestedScrollView 作为父级。当我删除 NestedScrollView 时,这个问题就停止了。
事实证明,如果您的布局中有 <ScrollView>
(不仅是 NestedScrollView
),这是一个问题。
删除 ScrollView
解决了我的问题!
顺便说一句:这只是在旧手机上测试时出现的问题...
已使用 Samsung Galaxy S3 进行测试 -> 您必须删除 ScrollView
使用 Samsung Galaxy S8 测试 -> 适用于 ScrollView