Android Recyclerview:点击按钮将行从线性更改为网格

Android Recyclerview:点击按钮将行从线性更改为网格,android,android-studio,android-recyclerview,gridlayoutmanager,linearlayoutmanager,Android,Android Studio,Android Recyclerview,Gridlayoutmanager,Linearlayoutmanager,在点击按钮时,我想将列表视图更改为购物车页面上的gridview,但我的布局如下图所示 //For displaying the row as linear list view case R.id.ivGrid: ivList.setVisibility(View.VISIBLE); ivGrid.setVisibility(View.GONE); LinearLayoutManager llm = new LinearLayoutManager(cont

在点击按钮时,我想将列表视图更改为购物车页面上的gridview,但我的布局如下图所示

//For displaying the row as linear list view        
case R.id.ivGrid:
    ivList.setVisibility(View.VISIBLE);
    ivGrid.setVisibility(View.GONE);
    LinearLayoutManager llm = new LinearLayoutManager(context);
    rcvProducts.setLayoutManager(llm);
    break;

//For displaying the row as gridview
case R.id.ivList:
    ivList.setVisibility(View.GONE);
    ivGrid.setVisibility(View.VISIBLE);
    GridLayoutManager glm = new GridLayoutManager(this,2,GridLayoutManager.VERTICAL, false);
    rcvProducts.setLayoutManager(glm);
    break;


只需使用GridLayoutManager,将跨度计数从1更改为2,然后再更改

view.setOnClickListener(new View.OnClickListener(){
    public void onClick(View view){
        GridLayoutManager layoutManager = (GridLayoutManager) grid.getLayoutManger();
        layoutMananger.setSpanCount(layoutManager.getSpanCount() == 2 ? 1 : 2);
    }
})
  • 维护2个适配器,一个用于ListView,一个用于GridView
  • 单击按钮,将适配器更改为RecyclerView
  • Listview.setAdapter(gridAdapter)(或)Listview.setAdapter(listAdapter)

  • 如果我没有错的话,它的布局管理器负责决定recyclerview的格式。适配器只是帮助将数据放入视图中;我们必须同时更新这两个版本,这是一个耗时的过程,这是一个完全错误的方法!!