【问题标题】:Problems with fragment transitions片段转换的问题
【发布时间】:2016-08-17 12:07:32
【问题描述】:

我在一个活动中有两个片段,我希望第一个片段从屏幕左侧优雅地滑出视图,而第二个片段从屏幕右侧进入。我正在使用 Transitions API,结果如下:

初始屏幕:

过渡效果不佳:

我的代码如下:

HomeFragment savedHomeFragment = (HomeFragment) getSupportFragmentManager().findFragmentByTag(HOME_FRAGMENT);

    if (savedHomeFragment == null) {
        mHomeFragment = new HomeFragment();
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            mHomeFragment.setEnterTransition(new Fade(Fade.MODE_IN));
            mHomeFragment.setExitTransition(new Slide(Gravity.START));
        }
        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.add(R.id.placeholder, mHomeFragment, HOME_FRAGMENT);
        fragmentTransaction.commit();
    } else {
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            savedHomeFragment.setEnterTransition(new Fade(Fade.MODE_IN));
            savedHomeFragment.setExitTransition(new Slide(Gravity.START));
        }
    }

void buttonClick() {
    TargetFragment targetFragment = new TargetFragment();
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        targetFragment.setEnterTransition(new Slide(Gravity.END));
    }
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.placeholder, targetFragment , TARGET_FRAGMENT);
    fragmentTransaction.addToBackStack(null);
    fragmentTransaction.commit();
}

我做错了什么?

【问题讨论】:

    标签: java android android-fragments android-transitions fragmenttransaction


    【解决方案1】:

    第一个片段上的按钮放置在没有背景的容器上。您看到的白色背景是您的活动的背景。在您的 Fragment1 布局中的根元素上提供背景颜色,您的问题将得到解决。

    【讨论】:

    • 哇,这个单行机结束了我数周的研究。非常感谢你儿子。现在一切都好,只是活动片段似乎覆盖在传入片段之上。这可以解决吗?就像让一切顺利进行。我的意思是让传入的片段包含整个视图,就像传出的片段离开一样。
    • @JuliusLamar 我目前有这个问题(在向前导航时,传出片段覆盖在传入片段的顶部)。你有没有找到解决方案?
    猜你喜欢
    • 1970-01-01
    • 2021-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多