RecyclerView切换布局(列表→网格)

public class SousuoActivity extends AppCompatActivity implements SousuoView {


    private CheckBox ck_box;
    private XRecyclerView xrecyclerview;
    private SousuoPresenter sousuoPresenter;
    private String keywords;
    private List<GoodsBean.DataBean> data;
    boolean flag = false;
    private int page=1;
    private SearchGvAdapter gvAdapter;
    private SearchLvAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sousuo);
        ck_box = findViewById(R.id.ck);
        xrecyclerview = findViewById(R.id.sou_lv);


        Intent intent = getIntent();
        keywords = intent.getStringExtra("name");
        sousuoPresenter = new SousuoPresenter(this);

        sousuoPresenter.getData(ApiUtil.SEARCH_URL,keywords,page);
    }

    @Override
    public void onSuccess(final GoodsBean goodsBean) {
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                // 获取到集合
                data = goodsBean.getData();
                Toast.makeText(SousuoActivity.this, goodsBean.getMsg(),Toast.LENGTH_SHORT).show();
                setLvAdapter();
                ck_box.setChecked(flag);
                if (ck_box.isChecked()){
                    setGvAdapter();
                    gvAdapter.notifyDataSetChanged();
                }else {
                    setLvAdapter();
                    adapter.notifyDataSetChanged();
                }
                ck_box.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View view) {
                        if (flag){
                            setLvAdapter();
                            ck_box.setChecked(false);
                            flag = ck_box.isChecked();
                        }else {
                            setGvAdapter();
                            ck_box.setChecked(true);
                            flag = ck_box.isChecked();
                        }
                    }
                });

                xrecyclerview.setLoadingListener(new XRecyclerView.LoadingListener() {
                    @Override
                    public void onRefresh() {
                       new Handler().postDelayed(new Runnable() {
                           @Override
                           public void run() {
                               data.clear();
                               sousuoPresenter.getData(ApiUtil.SEARCH_URL,keywords,1);

                               // 刷新完成
                               xrecyclerview.refreshComplete();
                           }
                       },2000);
                    }

                    @Override
                    public void onLoadMore() {
                       new Handler().postDelayed(new Runnable() {
                           @Override
                           public void run() {
                               page++;
                               sousuoPresenter.getData(ApiUtil.SEARCH_URL, keywords,page);
                               // 刷新完成
                               xrecyclerview.loadMoreComplete();
                           }
                       },2000);
                    }
                });
            }
        });
    }

    private void setGvAdapter() {
        gvAdapter = new SearchGvAdapter(SousuoActivity.this,data);
        xrecyclerview.setAdapter(gvAdapter);
        xrecyclerview.setLayoutManager(new StaggeredGridLayoutManager(2,      GridLayoutManager.VERTICAL));
    }

    private void setLvAdapter() {
        adapter = new SearchLvAdapter(SousuoActivity.this,data);
        xrecyclerview.setAdapter(adapter);
        xrecyclerview.setLayoutManager(new LinearLayoutManager(SousuoActivity.this,LinearLayoutManager.VERTICAL,false));
    }
}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值