在新的Android L API中进行幻灯片转换

时间:2014-08-08 15:40:49

标签: android slide transitions android-5.0-lollipop

我正在尝试新的Android L API特定转换。我拥有的最佳体验" Fade"但是" Slide.RIGHT"表现得非常奇怪......当屏幕飞入其中时,首先在屏幕底部显示屏幕标题,然后标题跳转到屏幕顶部,屏幕的其余部分出现......

我没有使用自定义转换,只是基本转换。我用于测试的屏幕只有几个TextView,EditText和按钮。但即使我将Google ActivitySceneTransitionBasicSample从自定义过渡更改为基本的Slide.RIGHT,它也会表现出同样奇怪的方式......

有人设法实现了漂亮的幻灯片转换吗?在我的情况下,我需要完全滑动不同的屏幕。没有我可以分享的元素。

我的代码是:

第一项活动:

@Override 
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
    Slide transitionEnter = new Slide();
    transitionEnter.setSlideEdge(Gravity.RIGHT);
    transitionEnter.setDuration(1000);
    Window currentW = getWindow();
    currentW.setEnterTransition(transitionEnter);
    currentW.setExitTransition(transitionEnter);

    getWindow().setAllowEnterTransitionOverlap(true);
    getWindow().setAllowExitTransitionOverlap(true);

    setContentView(R.layout.slide_test_view);
    }
    public void buttonLAction(View view){
        Utils.startActivity(this, SecondSlideTestActivity.class);
    }

第二项活动:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
    Slide transitionEnter = new Slide();
    transitionEnter.setSlideEdge(Gravity.RIGHT);
    transitionEnter.setDuration(1000);
    Window currentW = getWindow();
    currentW.setEnterTransition(transitionEnter);
    currentW.setExitTransition(transitionEnter);

    getWindow().setAllowEnterTransitionOverlap(true);
    getWindow().setAllowExitTransitionOverlap(true);

    setContentView(R.layout.second_slide_test_view);
}

1 个答案:

答案 0 :(得分:3)

只是一个小小的建议,不会让它变得完美,但在我看来看起来更好:

使用不同的边进入和退出转换,例如:

transitionEnter.setSlideEdge(Gravity.RIGHT);
transitionExit.setSlideEdge(Gravity.LEFT);

我做到了,对我而言,它看起来还不错。希望这有帮助!