2013-05-11 23 views
5

我在我的項目中有一個相當奇怪的動畫問題。在下面張貼的截圖中,您可以清楚地看到總計卡在動畫時留下某種痕跡。這個問題在運行4.2.2的股票Nexus 7上是可重現的。總計卡擁有Google即時式動畫。請注意,總計卡的容器是Fragment,橫向屏幕截圖左側的菜單是不同的片段,底部的按鈕是片段所附的Activity的一部分。Android動畫留下文物

Landscape Screenshot

Portrait screenshot

我似乎無法在網上找到一個解決方案,我已經試過setFillAfter「真」,並抵消了動畫的開始。當按下其中一個按鈕時,底部活動按鈕(「前面的&」下一步)中的跡線消失。

這裏是在總計片段的onCreateView代碼:

final View view = inflater.inflate(R.layout.fragment_totals, 
      container, false);  

    Fonts.setRobotoThinFont(getActivity(), view); 

    final LinearLayout mContainer = (LinearLayout) 
      view.findViewById(R.id.container); 

    final View mCard = inflater 
      .inflate(R.layout.view_simpletotal, mContainer, false); 

    Animation animation = AnimationUtils.loadAnimation(getActivity(), 
      R.anim.card_animation); 

    mContainer.addView(mCard); 

    mCard.startAnimation(animation); 

    return view; 

任何幫助,將不勝感激!

+1

當動畫結束時,您是否嘗試使整個活動容器無效? – 2013-05-11 22:50:43

+0

擺脫它,非常感謝你!這是否被認爲是「良好做法」? – 2013-05-11 23:03:51

+0

嗯,我想你應該更好地使用片段自定義動畫,如官方參考文獻中所示(看起來你正在爲整個片段製作動畫片,不是嗎?)http://developer.android.com/training/animation/cardflip.html – 2013-05-11 23:06:24

回答

3

只需在動畫結束時使容器活動無效即可輕鬆擺脫它。

2

我建議你使用方法ViewGroup類。我認爲它會幫助你。
例如,你可以這樣寫代碼的片段類中:

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    ... 
    rootView.setLayoutAnimation(getLayoutAnimation()); 
    ... 
} 
private LayoutAnimationController getLayoutAnimation() { 
    Animation animation = new RotateAnimation(30, 0, -100, 0); 
    animation.setDuration(1000); 
    LayoutAnimationController layoutAnimationController = new LayoutAnimationController(animation); 
    return layoutAnimationController; 
} 

看到的將動畫發生什麼。

+0

感謝您的回覆!我在片段內部激活了視圖而不是片段本身,但是您的答案可能會幫助我處理另一個無關的問題。感謝您的輸入! – 2013-05-11 23:49:09

+1

這個例子完全適用於視圖。你可以將它應用到你想要的任何ViewGroup對象。對於你的例子,你可以將帶有總計細節的白色塊放入某個ViewGroup,然後應用我提出的動畫。如果運行動畫會出現一些問題,則將該ViewGroup的佈局參數設置爲MATCH_PARENT。 您可以在這裏閱讀更多: [link] http://developer.android.com/reference/android/view/animation/LayoutAnimationController.html – Anatolii 2013-05-12 00:08:02