Android ApiDemo学习(五)Animation—— 4 Default Layout Animation

动画效果:点击add button按钮后,增加按钮1;再点击add button,增加的按钮2、3、4等都插在1后添加,之前的其他按钮顺延向后移动。点击增加的这些按钮,自己会消失,之后的按钮会自动排到前面来。

 

先看布局文件layout_animations_by_default.xml:

按钮button下有一个GridLayout。属性android:animateLayoutchanges = "true"。这个属性是从ViewGroup类继承过来的,和SetLayoutTransion相关。如果设置为true,表示layout发生改变时(添加或删除item)会引起setLayoutTransion的调用。

 

再看java代码LayoutAnimationsByDefault.java:

按钮“addButton”,点击事件的listener:gridLayout中增加一个button,增加的位置为0或者1(如果0位置已经有按钮)

其他按钮的点击事件listener:将自己从gridLayout中移除

 

可以看到,java代码中只是单纯实现按钮的增加和删除的功能,其他按钮的移动是如何实现的呢?就是xml文件中animateLayoutChanges属性的作用啦。如果这个属性为false,可以看到,添加一个新的按钮后,其他的按钮只是上面的文字改变了,并没有按钮平移的动画特效。

你可能感兴趣的:(Android,ApiDemo学习)