recyclerview findfirstvisibleitemposition()返回-1

icomxhvb  于 2021-06-29  发布在  Java
关注(0)|答案(0)|浏览(374)

我有一个与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()也应该可用。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题