歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Android: 解決動畫完成後位置恢復到初始位置的問題

今天在使用TranslateAnimation位移一個LinearLayout時,發現動畫完成後又會自動回到初始的狀態,設置了fillAfter也不太管用。

在網上搜了一圈,發現:

這種現象很正常,因為TranslateAnimation只負責實現位移動畫效果,並不會真正的改變LinearLayout的位置,所以需要加一個AnimationListener ,在動畫結束(onAnimationEnd() )後,通過設置LayoutParam裡相關屬性來改變LinearLayout位置才行。

  1. @Override  
  2. protected void onAnimationEnd() {   
  3.     super.onAnimationEnd();   
  4.     FrameLayout.LayoutParams ll = new FrameLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.FILL_PARENT);   
  5.     ll.setMargins(-50000);   
  6.     main_layout.setLayoutParams(ll);   
  7.  }  
Copyright © Linux教程網 All Rights Reserved