1

几个月来,我一直在努力让活动过渡到工作。我尝试了多种方法,使用 XML 和样式以及代码,但均无济于事。以下是我最近的尝试。有谁知道为什么我不能让任何过渡出现?

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    addSlideTransitions();
    setContentView(R.layout.my_activity_layout);
    ....
}

protected void addSlideTransitions()
{
    getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
    Slide slide = new Slide();
    slide.setDuration(1000);
    getWindow().setEnterTransition(slide);
    getWindow().setExitTransition(slide);
}
4

3 回答 3

1

您必须使用使用 makeSceneTransitionAnimation 创建的 ActivityOptions 包启动活动。

这种类型的转换也只在同一个任务中有效(从 N 开始)。

于 2016-05-17T23:04:15.047 回答
0

尝试将调用添加到addSlideTransitionsbefore super.onCreate

@Override
protected void onCreate(Bundle savedInstanceState)
{
    addSlideTransitions();
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity_layout);
    ....
}
于 2016-05-13T06:43:02.313 回答
0

尝试这样做,我相信这对你有用。

public class MainActivity extends AppCompatActivity {

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

        setContentView(R.layout.activity_main);

    }



    @TargetApi(Build.VERSION_CODES.LOLLIPOP)
    protected void addSlideTransitions()
    {
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        Slide slide = new Slide();
        slide.setDuration(1000);
        getWindow().setEnterTransition(slide);
        getWindow().setExitTransition(slide);
    }
}
于 2016-05-13T04:49:17.297 回答