Android LayoutTransition

1.LayoutTransition

LayoutTransition意思是布局过渡,也就是布局动画,这个类可以实现ViewGroup的布局改变时自动执行动画。

在Android开发时经常会用到View的setVisiblity()方法来动态隐藏和显示view,但是这样是没有过渡动画的,变化的时候会显得很生硬。

LayoutTransition 从api11开始提供,主要功能就是在ViewGroup的布局发生变化时能够自动创建动画。使用的时候需要创建一个LayoutTransition实例,并调用ViewGroup的setLayoutTransition( LayoutTransition)方法。这样,每当ViewGroup添加或者删除内部view时就会触发动画。如果要设置定制的动画,需要调用setAnimator()方法。

布局动画由两种状态的改变导致执行四种不同的动画。

两种状态的改变分别是view被添加到ViewGroup(或者变得可见VISIBILITY)、view被移除ViewGroup(或者不可见)。所以设置View可见或者不可见也将触发布局动画添加和删除动画的逻辑( GONE and VISIBLE)。

四种不同的动画分别是(api11中添加):

APPEARING:view被添加(可见)到ViewGroup会触发的动画。

DISAPPEARING :view被移除(不可见)ViewGroup会触发的动画。

CHANGE_APPEARING :view被添加(可见)到ViewGroup,会影响其他View,此时其它View会触发的动画。

CHANGE_DISAPPEARING:view被移除(不可见)ViewGroup,会影响其他View,此时其它View会触发的动画。

也就是说,假如ViewGroup中有多个Button对象,需要删除其中一个Button对象的话,该Button对象可以设置动画(即DISAPPEARING 动画形式),ViewGroup中的其它Button对象此时移动到新的位置的过程中也可以设置相关的动画(即CHANGE_DISAPPEARING 动画形式);若向ViewGroup中添加一个Button,Button对象可以设置动画(即APPEARIN 动画形式),ViewGroup中的其它Button对象此时移动到新的位置的过程中也可以设置相关的动画(即CHANGE_APPEARING 动画形式)。

注:PI16 添加了CHANGING 类型,表示当元素本身某个属性发生变化,但元素并没有添加和移除时需要动画的显示。所以现在是五种类型动画。

四种类型的动画都有默认的动画效果,当只为ViewGroup设置了animateLayoutChanges=true后,触发ViewGroup中view的添加和删除就会触发默认动画。默认情况下DISAPPEARING和CHANGE_APPEARING类型动画会立即执行,其他类型动画则会有延迟,这样就会导致如下效果:当一个View被添加到布局中,其他受影响的View会首先移动,接着当view添加到布局时运行appearing animation。当一个view被从布局中移除时,首先运行移除动画,接着运行其他受影响的view的动画,此时可以利用setDuration和setStartDelay修改延迟时间。

注意:

①如果在DISAPPEARING动画完成之前运行了APPEARING动画,则DISAPPEARING动画将停止,并且会恢复DISAPPEARING动画的效果。如果在APPEARING动画完成之前启动DISAPPEARING动画,则会对A

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值