2016-01-19 60 views
1

我正在使用setCustomAnimations()方法在Android 6.0.1中完全沒有效果。發生的情況是片段在動畫的持續時間內卡在屏幕的左側,在屏幕的其餘部分留下空白區域,然後在沒有任何動畫的情況下佔用屏幕。它適用於所有版本< 6.0。我使用的方法如下:片段交易動畫不能在Android 6.0+中工作

FragmentManager fragmentManager = getSupportFragmentManager(); 
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); 
fragmentTransaction.setCustomAnimations 
      (R.anim.slide_in_left, R.anim.slide_out_left, 0, 0); 
MyFragment myFragment = new MyFragment(); 
fragmentTransaction.replace(R.id.fragmentContainer, myFragment, 
      ResourceUtil.resByName(context, R.string.myFragmentText)); 
fragmentTransaction.commit(); 

此外,slide_in_left XML文件如下:

<?xml version="1.0" encoding="utf-8"?> 

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:fromXDelta="-100%" android:toXDelta="0%" 
    android:fromYDelta="0%" android:toYDelta="0%" 
    android:duration="300"/> 
</set> 

回答

0

使用此:

fragmentTransaction.setCustomAnimations(R.anim.anim_appear, R.anim.s_down); 

更多here

還不能正常工作?檢查你的xml。 -100%可能會導致問題。

所以動畫改成這樣:

<?xml version="1.0" encoding="utf-8"?> 

<set xmlns:android="http://schemas.android.com/apk/res/android"> 
<translate 
    android:fromXDelta="0%" android:toXDelta="100%" 
    android:fromYDelta="0%" android:toYDelta="0%" 
    android:duration="300"/> 
</set>