【问题标题】:Scenes vs Fragments and Views场景与片段和视图
【发布时间】:2014-06-17 03:56:43
【问题描述】:

背景

过去,Google 提供了 Fragments 类(我还问过我们什么时候应该使用它,here)。

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

根据我读到的内容(以及在讲座上观看的内容,例如 here),它应该可以帮助您处理动画和状态之间的转换。

问题

其实我有几个问题:

  1. 在哪些情况下我会知道何时使用它?它仅用于动画并被视为您的应用程序的“奖励”吗?或者它是否也呈现了一些逻辑,比如 Fragments 和 Activities?

  2. 使用它和只为您想要制作动画的每个视图制作动画有什么区别?

  3. 有这方面的官方样本吗?

  4. 是否有任何兼容性库,可用于 4.4 之前的版本?

【问题讨论】:

    标签: android android-fragments android-view transitions


    【解决方案1】:

    只是动画吗

    是的。

    或者它是否也呈现了一些逻辑,比如片段和活动?

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

    使用它与只为您想要动画的每个视图制作动画有什么区别?

    简单。

    有这方面的官方样本吗?

    one on your hard drive already,假设你已经下载了SDK示例。

    另见Mark Allison's blog post series

    是否有任何兼容性库,可用于 4.4 之前的版本?

    没有,但是有a community backport

    【讨论】:

    • 是的,我现在已经在模拟器上试用了这个示例,我认为它确实让它变得更容易了一些。我所说的“逻辑”不仅仅是 UI/UX。如您所知,Fragments 不仅可以包含处理 UI,还可以包含更多 POJO 代码。事实上,他们甚至不需要展示任何东西。
    • @androiddeveloper:不,AFAIK 对Scene 的愿景和过渡框架仅用于动画效果,仅此而已。
    • 所以并没有像 Fragments 那样大的变化。我知道了。想知道是否有任何应用程序使用它,看看它何时有用的更多示例。
    • @androiddeveloper:您无法从外部真正分辨出什么在使用过渡框架,以及什么在以其他方式制作动画。因此,如果没有一篇博文说“是的,转换框架!”,就很难确定实现。
    • 是的,通过外观很难分辨出任何东西,但也许开发人员说他们使用了某些应用程序。非常罕见,但谷歌有时会这样做。
    【解决方案2】:

    1.场景是在活动/片段中更改根视图的更好方法。

    示例:

        @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

    【讨论】:

    • #3。根据链接(我也看过),它似乎是多个视图之间的动画,而不仅仅是两个视图之间。我仍然希望更好地理解它。 #4。我没看到。支持库的类名是什么?
    猜你喜欢
    • 1970-01-01
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-02
    相关资源
    最近更新 更多