歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android: 解決動畫完成後位置恢復到初始位置的問題

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

日期:2017/3/1 10:33:33   编辑:Linux編程

今天在使用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(-50, 0, 0, 0);
  6. main_layout.setLayoutParams(ll);
  7. }
Copyright © Linux教程網 All Rights Reserved