Android 使用StaggeredLayoutManager进行无休止的滚动?
我试着实现一个循环视图。我创建抽象的onScroll RecyclerView,如下所示:Android 使用StaggeredLayoutManager进行无休止的滚动?,android,android-recyclerview,Android,Android Recyclerview,我试着实现一个循环视图。我创建抽象的onScroll RecyclerView,如下所示: @Override public void onScrolled(RecyclerView recyclerView, int dx, int dy) { super.onScrolled(recyclerView, dx, dy); int grid_column_count = context.getResources().getInteger(R.integ
@Override
public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
super.onScrolled(recyclerView, dx, dy);
int grid_column_count = context.getResources().getInteger(R.integer.grid_column_count);
StaggeredGridLayoutManager mLayoutManager = new StaggeredGridLayoutManager(grid_column_count, StaggeredGridLayoutManager.VERTICAL);
int visibleItemCount = recyclerView.getChildCount();
int totalItemCount = mLayoutManager.getItemCount();
int firstVisibleItemsGrid[] = new int[grid_column_count];
int firstVisibleItem = mLayoutManager.findFirstVisibleItemPositions(firstVisibleItemsGrid)[0];
if ((visibleItemCount + firstVisibleItem ) >= totalItemCount
&& totalItemCount != 0) {
onLoadingMore();
}
}
protected abstract void onLoadingMore();
我通过维护来实现
//===============
recyclerview= (RecyclerView)rootView. findViewById(R.id.grid_view);
recyclerview.setHasFixedSize(true);
grid_column_count = getResources().getInteger(R.integer.grid_column_count);
mLayoutManager = new StaggeredGridLayoutManager(grid_column_count, StaggeredGridLayoutManager.VERTICAL);
recyclerview.setLayoutManager(mLayoutManager);
//=====================
recyclerview.addOnScrollListener(new HidingScrollListener(getActivity()) {
@Override
protected void onLoadingMore() {
if ( isFinishLoadingAwal
&& !isFinishMoreNews
&& adapter.getItemCount()> 0) {
getMoreNewsFromServer();
}
}
});
但我发现了一个错误:
firstVisibleItem = mLayoutManager.findFirstVisibleItemPositions(firstVisibleItemsGrid)[0];
日志:
那么如何修复它呢?或者有什么解决办法?
对不起,我的英语不好。替换
firstVisibleItem=mLayoutManager.findFirstVisibleItemPositions(firstVisibleItemsGrid)[0]代码>带有
firstVisibleItem = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstVisibleItemPosition(); and try.
我使用它与RecyclerView无休止地滚动交错网格。我有以下内容,但我得到了错误firstVisibleItems=mLayoutManager.findFirstVisibleItemPositions(firstVisibleItems)
findFirstVisibleItemPositions
不是由@AmayDiam的StaggeredLayoutManager
可能的副本提供的。您找到任何解决方案了吗?获取错误java.lang.ClassCastException:android.support.v7.widget.StaggedGridLayoutManager无法强制转换为android.support.v7.widget.LinearLayoutManager
解析方法findFirstVisibleItemPosition
firstVisibleItem = ((LinearLayoutManager)recyclerView.getLayoutManager()).findFirstVisibleItemPosition(); and try.