Recycleview 横竖屏

看到了一篇贴子:https://blog.csdn.net/yaosongqwe/article/details/48710375

        //竖屏线性展示
        mLlayoutmanager = new LinearLayoutManager(this);
        //横屏每行显示3个
        mGlayoutmanager = new GridLayoutManager(this,3);



    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
        reviewonScreenChanged(newConfig);
    }


 private void reviewonScreenChanged(Configuration newConfig) {
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            //横屏
            recyclerView.setLayoutManager(mGlayoutmanager);
        }else {
            //竖屏
            recyclerView.setLayoutManager(mLlayoutmanager);
        }
    }


    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putStringArrayList("data", datas);
    }

//在onCreate里面获取横竖屏切换保存的data
//切换屏幕时保存数据,如有数据,则不再进行数据的初始化
        if (savedInstanceState != null && savedInstanceState.getStringArrayList("data") != null) {  
            datas = savedInstanceState.getStringArrayList("data");
        }else {
            initData();
        }

贴子二:https://blog.csdn.net/hhy107107/article/details/50429785

实现横竖布局穿插

RecyclerView recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
        GridLayoutManager gridLayoutManager = new GridLayoutManager(getContext() ,2);
        //todo 这个属性很重要,可以直接实现上图的效果
        gridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup(){
            @Override
            public int getSpanSize(int position) {
                if(position % 3 == 0) return 2;
                return 1;
            }
        });
        recyclerView.setLayoutManager(gridLayoutManager);
        recyclerView.setAdapter(adapte);

猜你喜欢

转载自www.cnblogs.com/liyanli-mu640065/p/9171429.html