微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

android – 当片段与动画白色空白屏幕之间切换时出现

我有问题,当我在片段之间切换白色屏幕出现在新片段出现之前我不知道什么是问题

这是我的动画

动画/ fragment_slide_left_enter

<translate
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="100%p"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toXDelta="0%p" />

<alpha
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromAlpha="0.0"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toAlpha="1.0" />

动画/ fragment_slide_left_exit

<translate
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="0%p"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toXDelta="-100%p" />

<alpha
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromAlpha="1.0"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toAlpha="0.0" />

动画/ fragment_slide_right_enter

<translate
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="-100%p"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toXDelta="0%p" />

<alpha
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromAlpha="0.0"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toAlpha="1.0" />

**anim/fragment_slide_right_exit**

 <translate
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromXDelta="0%p"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toXDelta="100%p" />

<alpha
    android:duration="@android:integer/config_mediumAnimTime"
    android:fromAlpha="1.0"
    android:interpolator="@android:interpolator/decelerate_quint"
    android:toAlpha="0.0" />

这是我加载片段的函数

public void loadFragment(Fragment fragment,String tag,boolean isShow,String key,String value,boolean isBack)
{
    bundle.putString(key,value);
    fragment.setArguments(bundle);
     fragmentTransaction = fragmentManager.beginTransaction();
    if (OldFragment != null) {
        Log.d("fragment--->","yes------");
        fragmentTransaction.detach(OldFragment);
    }
        if(isShow){
       //fragmentTransaction.setCustomAnimations(R.anim.slide_in_right,R.anim.slide_out_left);
            fragmentTransaction.setCustomAnimations(R.anim.fragment_slide_left_enter,R.anim.fragment_slide_left_exit,R.anim.fragment_slide_right_enter,R.anim.fragment_slide_right_exit);
        }
    fragmentTransaction.replace(R.id.ll_fragment,fragment,tag);
    if(isBack){
        fragmentTransaction.addToBackStack(null);
    }
    fragmentTransaction.commit();
    OldFragment=fragment;
}

解决方法

我也有这个问题,因为所有出现的解决方案只是设置窗口背景,我真的没有到达任何地方.比我想象的=>让我们尝试在我正在推动透明的片段中设置rootview的背景.瞧,这就是诀窍.所以我推送的片段的根视图在xml中看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/transparent">

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐