【问题标题】:Fragment Content Transition片段内容过渡
【发布时间】:2018-01-07 03:50:14
【问题描述】:
我正在尝试执行一个简单的过渡。我已将此添加到我的 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);
【问题讨论】:
标签:
android
material-design
android-transitions
【解决方案1】:
在将幻灯片添加到 Activity 之前设置幻灯片过渡,而不是在 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()
【解决方案2】:
您也可以使用 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);