RecyclerView点击切换布局
来源:互联网 发布:手机版刷屏软件 编辑:程序博客网 时间:2024/06/05 18:18
点击按钮来回切换列表和网格模式,效果如图
逻辑很简单,将数据请求下来后,用两个适配就可以来回切换,主要是数据一定要请求成功,特别是注意bean类一定要正确。
我用的是mvp框架,所以,数据可以很容易的调用,我的另一篇博客有写。
SharedPreferences记住状态,在onCreate()方法里面写con = getSharedPreferences("isTrue", MODE_PRIVATE);con.edit().commit();数据请求成功后
public void getUserSuccess(final List<Bean.DataBean> data2) { //默认的列表模式 main_rv = (RecyclerView) findViewById(R.id.main_rv); LinearLayoutManager manager = new LinearLayoutManager(MainActivity.this); main_rv.setLayoutManager(manager); myListAdapter = new MyListAdapter(MainActivity.this, data2); main_rv.setAdapter(myListAdapter); //按钮的点击事件,点击切换布局 main_btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { boolean isTrue = con.getBoolean("isTrue", true); if(isTrue){ main_rv = (RecyclerView) findViewById(R.id.main_rv); LinearLayoutManager manager = new LinearLayoutManager(MainActivity.this); main_rv.setLayoutManager(manager); myListAdapter = new MyListAdapter(MainActivity.this, data2); main_rv.setAdapter(myListAdapter); //不要忘记提交 con.edit().putBoolean("isTrue",false).commit(); }else{ main_rv = (RecyclerView) findViewById(R.id.main_rv); GridLayoutManager manager = new GridLayoutManager(MainActivity.this,2); main_rv.setLayoutManager(manager); myGridAdapter = new MyGridAdapter(MainActivity.this, data2); main_rv.setAdapter(myGridAdapter); //不要忘记提交 con.edit().putBoolean("isTrue",true).commit(); } } });}//请求成功下面是一个Adapter类,另一个网格模式的和这个写的一样,只是里面的控件改一下,其他的不变
public class MyListAdapter extends RecyclerView.Adapter<MyListAdapter.MyViewHolder>{ private final Context context; private final List<Bean.DataBean> data; public MyListAdapter(Context context, List<Bean.DataBean> data) { this.context = context; this.data = data; } @Override public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = View.inflate(context, R.layout.list_item, null); MyViewHolder holder = new MyViewHolder(view); return holder; } @Override public void onBindViewHolder(MyViewHolder holder, int position) { holder.list_tv.setText(data.get(position).getTitle()); Glide.with(context).load(data.get(position).getImages().split("\\|")[0]).into(holder.list_iv); } @Override public int getItemCount() { if(data != null){ return data.size(); }else{ return 0; } } public class MyViewHolder extends RecyclerView.ViewHolder{ private final TextView list_tv; private final ImageView list_iv; public MyViewHolder(View itemView) { super(itemView); list_tv = itemView.findViewById(R.id.list_tv); list_iv = itemView.findViewById(R.id.list_iv); } }}
——
——————end—————
——
阅读全文
0 0
- RecyclerView点击切换布局
- RecyclerView点击切换布局
- RecyclerView-点击切换多种布局
- RecyclerView+ButterKnife点击按钮进行布局切换与添加删除
- RecyclerView实现点击切换
- RecycleView点击切换布局
- RecyclerView切换布局(列表→网格)
- RecyclerView点击事件、加载不同布局
- RecyclerView多布局与Item点击事件
- RecyclerView布局的点击(并非item的点击)
- RecyclerView线性布局和网格布局的切换
- 抽屉布局加上RadioGroup+点击进行切换
- android 搜索关键词,点击切换布局 主界面
- recyclerview,okHttp,布局切换,springView上拉刷新下拉加载
- Android RecyclerView一键快速切换布局样式
- RecyclerView使用(二)多种Item布局、添加点击事件
- RecyclerView的Itme多布局与Itme的点击事件
- RecyclerView多布局加接口回调点击分享
- 控件的边框设置
- RecyclerView添加头部
- 树状数组
- Django自动化运维管理平台
- 分享个绝地求生吃鸡图生成器,装逼利器!!
- RecyclerView点击切换布局
- Date类型转换dataFormat类型取出来的时间时分秒为什么都是0或者后面有个.0
- 金蝶问题
- Gulp教程(1)-基础总结
- hive--基础操作
- Java数据结构与算法解析(一)——表
- String格式的时间转换为Date类型
- MVP实现分页加载
- angularjs-多种查询方法-月份查询