【问题标题】:While switching between fragment with animation white blank screen appear在带有动画白色空白屏幕的片段之间切换时出现
【发布时间】:2017-02-13 06:00:09
【问题描述】:

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

这是我的动画

动画/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;
}

【问题讨论】:

标签: android animation fragment


【解决方案1】:

我也遇到了这个问题,因为提出的所有解决方案都只是设置窗口背景,所以我并没有真正做到。比我想象的=> 让我们尝试在我推入的片段中将 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">

【讨论】:

  • 它不起作用 - cmets 的长度必须至少为 15 个字符
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-23
  • 2013-12-01
  • 1970-01-01
  • 2015-06-21
  • 1970-01-01
  • 2018-03-18
  • 2020-06-23
相关资源
最近更新 更多