GridLayoutManager中可能存在的错误?

时间:2015-10-17 20:07:58

标签: android android-recyclerview

我遇到了我怀疑可能是Androids GridLayoutManager中的错误。我有一个简单的设置:RecyclerView使用带有GridLayoutManager的{​​{1}}(下面的代码)。布局管理器中使用的列数是可变的;由屏幕尺寸和屏幕方向决定。

我按如下方式初始化我的布局管理器:

SpanSizeLookup

我的 layoutManager = new GridLayoutManager(getContext(), getResources().getInteger(R.integer.products_per_row)); recyclerView.setLayoutManager(layoutManager); 使用以下SpanSizeLookup方法

getSpanSize

Android一切都按预期工作:当屏幕旋转时,列数会相应更改而不会崩溃。但是,如果屏幕是纵向的,并且用户开始活动(例如,通过打开通知中的应用程序),这会强制它进行横向定位,我会遇到以下崩溃:

    @Override
    public int getSpanSize(int position) {
        return position == 0 ? 
            getResources().getInteger(R.integer.products_per_row)) : 1;
    }

为了绝对清晰:R.integer.products_per_row为1,#34;正常"在这种情况下,屏幕尺寸设备为纵向,2个为横向设备。

现在我完全接受这可能是我的代码中的错误但是我没有看到我在这里做错了什么。

0 个答案:

没有答案