Android RecycleView简便实现切换布局样式
程序员文章站
2022-05-15 19:29:37
...
效果如下:
逻辑代码如下:
依赖: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>