TransitionView(转场动画容器)

大约 2 分钟约 517 字

TransitionView(转场动画容器)

等价 View 的内容视图转场过渡组件,常用于弹窗的入场与出场动画。使用方式与 View 完全一致,同样需要自行设置布局,区别是内容附带转场过渡动画。

构造参数

参数描述类型
type 必需转场动画类型TransitionType

TransitionType

取值说明
NONE无转场
DIRECTION_FROM_BOTTOM从底部入场过渡
DIRECTION_FROM_CENTER从中间入场过渡(缩放)
DIRECTION_FROM_RIGHT从右入场过渡 & 从右出场过渡
DIRECTION_FROM_LEFT从左入场过渡 & 从左出场过渡
FADE_IN_OUT淡入入场过渡 & 淡出出场过渡
CUSTOM自定义转场动画,务必同时设置 customBeginAnimationAttr 与 customEndAnimationAttr

属性

支持所有基础属性与布局属性,此外还支持:

transitionAppear

控制当前以入场还是退场动画进行,默认为 true(入场)。

参数描述类型
enterOrExit入场或退场Boolean

customBeginAnimationAttr

自定义动画起始状态的属性设置。使用该方法时 type 需设置为 TransitionType.CUSTOM。

参数描述类型
beginAttr起始动画属性设置闭包Attr.() -> Unit

customEndAnimationAttr

自定义动画终止状态的属性设置。使用该方法时 type 需设置为 TransitionType.CUSTOM。

参数描述类型
endAttr终止动画属性设置闭包Attr.() -> Unit

customAnimation

配置动画参数,设置后优先使用该配置。默认使用 Animation.springEaseInOut(0.35f, 0.9f, 1f)。

参数描述类型
animation动画配置Animation

使用限制

customBeginAnimationAttr、customEndAnimationAttr、customAnimation 均不支持二次修改,请在首次布局时完成设置。transitionAppear 可通过响应式字段修改,从 true 改为 false 时播放退场动画。

事件

支持所有基础事件,此外还支持:

transitionFinish

转场动画结束回调。

参数描述类型
transitionAppear本次结束的是入场(true)还是退场(false)动画Boolean

示例

Modal {
    attr {
        size(pagerData.pageViewWidth, pagerData.pageViewHeight)
    }
    TransitionView(TransitionType.DIRECTION_FROM_BOTTOM) {
        attr {
            size(pagerData.pageViewWidth, 300f)
            backgroundColor(Color.WHITE)
        }
        event {
            transitionFinish { isAppear ->
                // 转场动画结束
            }
        }
        Text {
            attr {
                text("从底部弹出的内容")
            }
        }
    }
}