Android:元素的同步幻灯片移动不属于transitionGroup

时间:2019-04-13 15:32:31

标签: android android-animation

简介

因此,当用户滑动时,我正在从一个片段向另一个片段进行幻灯片转换。 现在,更改片段时,并非所有视图都应该滑出,因此我将transitionGroup = false设置为片段的rootview。 所有不应滑动的视图都通过addSharedElement()方法添加到fragmenttransaction。效果很好

但是(我的问题):那些(像预期的那样)滑移的视图不会以相同的速度(没想到的)滑移。

我尝试过的事情:

  1. 我为进入幻灯片和退出幻灯片尝试了不同的插值器

    • 结果:插值器工作正常,但没有影响滑动视图之间的差异。
  2. 我删除了xml中的transitionGroup = false语句,并添加了不应通过excludeTarget()方法滑动的视图。

    • 结果:所有事物都以相同的速度滑动(很好),但没有任何东西被排除在滑动之外(非常糟糕)。

现在这是我正在处理此问题的方法:

    private void addSlideTransition(Fragment oldFragment, Fragment newFragment, boolean toLeft) {
        Slide exitSlide = new Slide();
        Slide enterSlide = new Slide();
        exitSlide.setInterpolator(new DecelerateInterpolator());
        enterSlide.setInterpolator(new AccelerateInterpolator());
        exitSlide.setDuration(500);
        enterSlide.setDuration(500);
        if(toLeft) {
            exitSlide.setSlideEdge(Gravity.LEFT);
            enterSlide.setSlideEdge(Gravity.RIGHT);
        }
        else {
            exitSlide.setSlideEdge(Gravity.RIGHT);
            enterSlide.setSlideEdge(Gravity.LEFT);
        }

        oldFragment.setExitTransition(exitSlide);
        newFragment.setEnterTransition(enterSlide);
    }

在第二次尝试中,我添加了此内容:

        exitSlide.excludeTarget(R.id.button_help, true);
        enterSlide.excludeTarget(R.id.button_help, true);

-并指出-从我的xml布局中删除了transitionGroup = false语句。

我期望的是,所有滑开的元件都像是“坐在一辆车上”。

但是实际上,如果它们从屏幕的右边缘开始,它们会更早开始向左移动。这似乎是一个“功能”,但出于特殊目的,我想删除此功能。

提前谢谢!如果您需要更多信息,请发表评论。

0 个答案:

没有答案