跳转至

Item出现时的动画

可用动画

动画类 描述
AlphaInAnimation 透明度动画
ScaleInAnimation 缩放动画
SlideInBottomAnimation 从底部滑入
SlideInLeftAnimation 从左侧滑入
SlideInRightAnimation 从右侧滑入

使用

val config = createNormalAdapterConfig<CollapseData> {
    //...其余无关代码
    addItemView(R.layout.item_1) {}
    //设置动画
    setAnim(SlideInLeftAnimation())
    // .....
}
config.done(rv, d)//调用show方法完成recycleview的显示

配置

val config = createNormalAdapterConfig<CollapseData> {
    //...其余无关代码
    addItemView(R.layout.item_1) {}
    configAnim {
        //更详细的配置动画
        startAnimBlock = { anim: Animator, holder: RecyclerView.ViewHolder ->

        }
        //作用同 setAnim(SlideInLeftAnimation())
        itemAnimation = SlideInLeftAnimation()
        // 是否打开动画
        animationEnable = false
        // 动画是否仅第一次执行
        isAnimationFirstOnly = false
    }
    // .....
}
config.done(rv, d)//调用show方法完成recycleview的显示

自定义动画

参考示例实现动画类,然后如上面那样 调用 setAnim() 设置动画

class SlideInLeftAnimation @JvmOverloads constructor(
    private val duration: Long = 400L,
) : ItemAnimator {

    private val interpolator = DecelerateInterpolator(1.8f)

    override fun animator(view: View): Animator {
        val animator = ObjectAnimator.ofFloat(view, "translationX", -view.rootView.width.toFloat(), 0f)
        animator.duration = duration
        animator.interpolator = interpolator
        return animator
    }
}