欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-05-15 19:29:37
...

效果如下:
Android RecycleView简便实现切换布局样式

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>

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