看到了一篇贴子: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);