过去,Google提供了Fragments类(我也曾问过我们应该何时使用它,here)。
现在,Android 4.4有一个名为" Scene"的新框架类。
根据我所阅读的内容(并在讲座中观看,例如here),它应该可以帮助您制作动画和状态之间的过渡。
其实我对此有几个问题:
在哪种情况下,我知道何时使用它?它只是用于动画并被认为是一个奖励"到你的应用程序?或者它是否也提供了像碎片和活动这样的逻辑?
使用它之间有什么区别,只是设置动画的每个视图的动画效果?
这是否有官方样本?
是否有任何兼容性库,要在4.4之前的版本中使用它?
答案 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