片段内容转换

时间:2018-01-07 03:50:15

标签: android material-design android-transitions

我试图进行简单的过渡。我已将此添加到my Fragment的onCreate方法中。我查看了FragmentTransaction文档,但是当我将其添加到活动中时,我看不到任何需要指定的内容。我从下面的代码中得不到任何效果。谢谢你的帮助。

    Slide slide = new Slide(Gravity.BOTTOM);
    slide.addTarget(R.id.cardview_container);
    slide.setInterpolator(
            AnimationUtils.loadInterpolator(getContext(), android.R.interpolator.linear_out_slow_in));
    slide.setDuration(1000);
    setEnterTransition(slide);

2 个答案:

答案 0 :(得分:0)

在将幻灯片转换添加到活动之前设置幻灯片转换,而不是在onCreate内部。

例如

Fragment fragment = new FragmentYouWantToAdd()

Slide slide = new Slide(Gravity.BOTTOM);
slide.addTarget(R.id.cardview_container);
slide.setInterpolator(
        AnimationUtils.loadInterpolator(getContext(), android.R.interpolator.linear_out_slow_in));
slide.setDuration(1000);
fragment.setEnterTransition(slide); // Setting transitions to the fragment

getSupportFragmentManager().beginTransaction()
    .add(R.id.container, fragment)
    .commit()

答案 1 :(得分:0)

您还可以使用XML简单地向片段添加转换。通过在anim文件夹中创建转场。例如 让过渡,

<强> enter_from_left

<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
    android:shareInterpolator="false">
    <translate
        android:fromXDelta="-100%" android:toXDelta="0%"
        android:duration="460"/>
</set>

在转换过程中,设置在创建或输入时从左幻灯片转换到您的片段的输入。 然后将其设置为您的片段,

YourFragment fragment = new YourFragment();
fragment.setEnterTransition(R.anim.enter_from_left);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
    transaction.add(R.id.container, fragment);
    transaction.commit();

如果您想添加退出转换,那么只需使用setCustomAnimations()即可。如,

fragment.setCustomAnimations(enterTransition, exitTransition);