XRecyclerView的点击切换布局

一个按钮切换布局

  • 布局效果
    点击图片切换布局
    在这里插入图片描述
    布局二
    在这里插入图片描述

  • 代码实现
    很容易想象我们只需要在Adapter中实现两种布局的加载和两种布局的判断
    适配器中添加

    /**
     * 切换布局
     */
    public final static int LINEAR_TYPE = 0;//线性
    public final static int GRID_TYPE = 1;//网格
    private int viewType = LINEAR_TYPE;
     @Override
    public int getItemViewType(int position) {
        return viewType;
    }

    //设置item的视图类型
    public void setViewType(int viewType) {
        this.viewType = viewType;
    }
      //接下来改变onCreateViewHolder方法, 为其加载布局为两种
        View view = null;
        if (viewType == LINEAR_TYPE) {//通过第二个参数viewType判断选用的视图
            view = View.inflate(viewGroup.getContext(), R.layout.item_list2, null);//加载item布局
        } else {
            view = View.inflate(viewGroup.getContext(), R.layout.item_list, null);//加载item布局
        }
        MyHolder myHolder = new MyHolder(view);

Activity中

 //我这里提成全局(设置你要切换的两种布局)
        linearLayoutManager = new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false);
        staggeredGridLayoutManager = new StaggeredGridLayoutManager(2,StaggeredGridLayoutManager.VERTICAL);
        

那个图片(或者按钮)的点击事件

 menu.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!isGrid){
                    /*isGrid = true;
                    mAdapter.setViewType(GoodsListAdapter.GRID_TYPE);
                    mRecyclerView.setLayoutManager(mGridManager);*/
                    isGrid = true;
                    phoneAdapter.setViewType(PhoneAdapter.GRID_TYPE);
                    xrecyclerView.setLayoutManager(layoutManager);
                }else{
                    isGrid = false;
                    phoneAdapter.setViewType(PhoneAdapter.LINEAR_TYPE);
                    xrecyclerView.setLayoutManager(linearLayoutManager);
                }
            }
        });

记得声明变量(Activity中) 切记!!!

 private boolean isGrid = false ;
  • 布局
    (自己定义就好了…)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值