Android RecycleView简便实现切换布局样式

效果如下:
这里写图片描述

这里写图片描述

逻辑代码如下:

依赖:implementation 'com.android.support:recyclerview-v7:27.0.0'

在主main方法里面定义一个boolean值

//先定义一个布尔值用来切换图片
private boolean b = false;

在设置如上图中图片的点击事件中写入:

public void checkIv(View view){
        Toast.makeText(MainActivity.this,"点击了切换视图按钮",Toast.LENGTH_SHORT).show();
        if (b==false) {
            //点击后想要变成什么要的布局样式就搞一个你的需求
            recView.setLayoutManager(new GridLayoutManager(this,2));
            //给布尔值重新赋值
            b = true;
            //给点击按钮的图片重新赋值
            cIv.setImageResource(R.mipmap.ic_linear);
        }else if (b==true) {
            recView.setLayoutManager(new LinearLayoutManager(this));
            //给布尔值重新赋值
            b = false;
            //给点击按钮的图片重新赋值
            cIv.setImageResource(R.mipmap.ic_grid);
        }
    }

RecycleView扩展:

//设置Item增加、移除动画
recView.setItemAnimator(new DefaultItemAnimator());

//添加分割线
recView.addItemDecoration(new DividerItemDecoration(
                getActivity(), DividerItemDecoration.HORIZONTAL_LIST));

该分割线是系统默认的,你可以在theme.xml中找到该属性的使用情况。那么,使用系统的listDivider有什么好处呢?就是方便我们去随意的改变,该属性我们可以直接声明在:

<!-- Application theme. -->
    <style name="AppTheme" parent="AppBaseTheme">
      <item name="android:listDivider">@drawable/divider_bg</item>  
    </style>

然后自己写个drawable即可,下面我们换一种分隔符:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle" >

    <gradient
        android:centerColor="#ff00ff00"
        android:endColor="#ff0000ff"
        android:startColor="#ffff0000"
        android:type="linear" />
    <size android:height="4dp"/>

</shape>

这里写图片描述

猜你喜欢

转载自blog.csdn.net/chen_md/article/details/81241416
今日推荐