在Android應(yīng)用開發(fā)的時候經(jīng)常會用到View的setVisibility()方法來動態(tài)隱藏和顯示view,但是這樣子是沒有過渡動畫的,變化的時候會顯得很生硬。
LayoutTransition是一個在4.0新引入的Api,主要功能是在ViewGroup的layout發(fā)生變化的時候能夠自動創(chuàng)建動畫。具體使用的時候,首先創(chuàng)建一個LayoutTransition對象,并在容器布局調(diào)用
setLayoutTransition(LayoutTransition)方法。這樣,每當(dāng)有子view從容器中出現(xiàn)或消失的時候,默認(rèn)的animator就會被自動調(diào)用。當(dāng)然,你也可以通過setAnimator()來設(shè)置自定義的動畫。
ViewGroup container = (ViewGroup) findViewById(R.id.container);
LayoutTransition transition = new LayoutTransition();
container.setLayoutTransition(transition);
此外還有一個更簡單地使用方法,在容器xml文件中插入下面一句代碼:
android:animateLayoutChanges="true"
在4.1 JellyBean上還有一個增強(qiáng)的功能,可以在容器內(nèi)的子view的layout發(fā)生變化時也播放動畫,用法如下。
LayoutTransition transition = container.getLayoutTransition();
transition.enableTransitionType(LayoutTransition.CHANGING);