【问题标题】:Bottom bar with 'reusing layouts' vs 'viewflipper'带有“重用布局”与“viewflipper”的底栏
【发布时间】:2013-01-19 17:03:16
【问题描述】:

好的,我正在开发一个应用程序,该应用程序具有带有按钮的永久底部栏,每个按钮都会在栏顶部启动不同的活动(如 Instagram 应用程序)。

我正在四处寻找解决方案,看起来我可以使用“viewflipper”、“reusing-layouts”或“actionbar”。我不想使用“操作栏”,所以这不在图片中。

所以“重用布局”与“viewflipper”——在性能、内存成本和有效呈现方面哪个更好(栏不会刷新/重新加载每个活动更改)?或者您有更好的解决方案建议?

参考:
取景器:http://developer.android.com/reference/android/widget/ViewFlipper.html
重用布局:http://developer.android.com/training/improving-layouts/reusing-layouts.html

【问题讨论】:

    标签: android android-layout android-xml menubar


    【解决方案1】:

    好的,我正在开发一个带有按钮的永久底部栏,每个 在栏顶部启动不同的活动(如 Instagram 应用)。

    我不熟悉 Instagram 应用,但它如何在栏顶部启动不同的活动?我认为您指的是单击按钮时相同 Activity 中出现的不同“内容”。

    所以“重用布局”与“viewflipper”——这在以下方面更好 性能、内存成本和有效演示(该栏不 刷新/重新加载每个活动更改)?

    两个版本都会处理剩余的内容更改栏(因为您将有一个 Activity),所以这不是问题。

    在内存中重用布局可能会更好,因为您一次在内存中只有一个布局文件。不幸的是,使用布局会更加困难,因为每次出现新布局时都需要从这些布局中重新初始化视图(如果布局真的彼此不同,这样做会更加困难)。

    ViewFlipper 将在其中保存其子视图,因此如果您有大量屏幕要显示,它不会很好地适应内存。您可能可以创建一个系统来从 ViewFlipper 中删除当前不可见的子视图,但我不会搞砸的。

    或者您有更好的解决方案建议?

    片段。可重用的组件,更容易处理,框架的帮助(只要你不违背它)管理它们,更容易处理各种屏幕布局......

    【讨论】:

    • hmm 单个活动可以显示具有不同布局/视图的不同内容(例如gridview、framelayout、...)吗?我认为“重用布局”可以用于多个活动。
    • @jerrytouille 您可以毫无问题地跨活动重用布局,问题是如果您使用不同的活动并且在每个活动中包含按钮栏,用户将看到栏刷新时新活动开始。我以为您希望用户看不到这种行为。是的,您可以在单个 Activity 中使用不同的布局,您基本上可以在您想要的时间和次数使用新的布局调用 setContentView
    • 我正在阅读“片段”,因为我是新手,所以根据您的建议:假设我们有一个底部有 4 个按钮的 DashboardActivity吧,每个btn会推出不同的fragment吗?片段就像一个迷你活动,有自己的组件,可以在单个“仪表板/主”活动中添加、删除;因此片段不仅仅是我们在“重用布局”中使用的布局/视图。
    • ...继续:一个典型的例子是相机意图,它可以是一个片段。在 Instagram 照片应用程序中,仪表板上的一个按钮允许用户拍照,而另一个按钮启动另一个片段以在 GridView 中显示照片库等。我理解对了吗?
    • @jerrytouille 是的,每个按钮都会添加一个片段(这不仅仅是一个视图容器,它是一个视图容器或/和行为)。查看来自 Google Play for Instagram 的图像,登录屏幕和地图屏幕是不同的活动,带有 5 个按钮的屏幕可能只是一个活动,过滤器屏幕也很可能只是一个屏幕。由于我不使用该应用程序,因此我不能说有关相机屏幕的任何信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-23
    • 2018-07-21
    相关资源
    最近更新 更多