簡體   English   中英

片段交易動畫無法在Android 6.0+中運行

[英]Fragment Transaction Animation not Working in Android 6.0+

我正在使用setCustomAnimations()方法在Android 6.0.1中完全無效。 發生的所有事情是,片段在整個動畫過程中被卡在屏幕的左側,在屏幕的其余部分上留有空白,然后在沒有任何動畫的情況下占據了屏幕。 它在所有<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>

用這個:

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

這里更多。

還是行不通? 檢查您的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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM