RecyclerView的展开与折叠是一种常见的动画
主要有两种方式可以实现
1.通过添加与移除元素
notifyInsert,notifyRemoved,这种方式涉及到元素的加减,动画效果不太流畅
2.通过给RecyclerView的item添加动画
这种情况需要考虑一个item添加动画时,对其他的item的影响。而利用MotionLayout可以方便的实现这一点。
先来看看效果
1.支持流畅的展开折叠
2.支持多类型item
3.支持只能同时展开一个
下面来看下具体实现
引入MotionLayout库
dependencies { implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta2' }
在布局文件中使用
MotionLayout 想要使用 MotionLayout,只需要在布局文件中作如下声明即可:
<androidx.constraintlayout.motion.widget.MotionLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/ap