场景与片段和视图

时间:2014-04-30 17:42:58

标签: android android-fragments android-view transitions

背景

过去,Google提供了Fragments类(我也曾问过我们应该何时使用它,here)。

现在,Android 4.4有一个名为" Scene"的新框架类。

根据我所阅读的内容(并在讲座中观看,例如here),它应该可以帮助您制作动画和状态之间的过渡。

问题

其实我对此有几个问题:

  1. 在哪种情况下,我知道何时使用它?它只是用于动画并被认为是一个奖励"到你的应用程序?或者它是否也提供了像碎片和活动这样的逻辑?

  2. 使用它之间有什么区别,只是设置动画的每个视图的动画效果?

  3. 这是否有官方样本?

  4. 是否有任何兼容性库,要在4.4之前的版本中使用它?

2 个答案:

答案 0 :(得分:5)

  

仅适用于动画

  

或者它是否也提供了像碎片和活动这样的逻辑?

这取决于你对“逻辑”的定义。

  

使用它和仅为您想制作动画的每个视图设置动画有什么区别?

简单。

  

这是否有官方样本?

假设您已下载SDK示例,则有one on your hard drive already

另见Mark Allison's blog post series

  

是否有任何兼容性库,要在4.4之前的版本上使用它?

不,但有a community backport

答案 1 :(得分:1)

1。场景是更改活动/片段中rootView的更好方法。

示例:

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

    rootContainer = 
                  (ViewGroup) findViewById(R.id.rootContainer);

    scene1 = Scene.getSceneForLayout(rootContainer, 
                     R.layout.scene1_layout, this);

    scene2 = Scene.getSceneForLayout(rootContainer, 
                      R.layout.scene2_layout, this);

    scene1.enter();
}

2。源代码更少,性能更高,更简单。

3。此处不存在官方样本。

非官方样本:http://www.techotopia.com/index.php/Implementing_Android_Scene_Transitions_%E2%80%93_A_Tutorial

4. 我认为Lib支持v4。

链接:https://developer.android.com/reference/android/transition/Scene.html