我有一个与gridlayoutmanager一起工作的recyclerview
GridLayoutManager layoutManager = new GridLayoutManager(this, 2);
每次设备的方向改变时,我都会改变列:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
float scalefactor = getResources().getDisplayMetrics().density * 160;
int number = getWindowManager().getDefaultDisplay().getWidth();
int columns = (int) ((float) number / (float) scalefactor);
recycler1.setLayoutManager(new GridLayoutManager(this, columns));
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){
float scalefactor = getResources().getDisplayMetrics().density * 160;
int number = getWindowManager().getDefaultDisplay().getWidth();
int columns = (int) ((float) number / (float) scalefactor);
recycler1.setLayoutManager(new GridLayoutManager(this, columns));
}
}
我在onscroll中使用这个方法进行无休止的滚动
if (layoutManager.findFirstVisibleItemPosition() == (newList.size() - 15)) {
loadMore();
}
但它返回“-1”,而不是右第一个可见项。我尝试了很多方法来解决这个问题,但都没有成功。
摘要:我想要一个带有gridlayoutmanager的recyclerview,它的列可以根据屏幕大小进行调整。此外,findfirstvisibleitemposition()也应该可用。
暂无答案!
目前还没有任何答案,快来回答吧!