【问题标题】:Should I hide optional views or add them at runtime?我应该隐藏可选视图还是在运行时添加它们?
【发布时间】:2012-10-04 17:52:09
【问题描述】:

假设我有一个ViewGroup,它可以包含几个可选的子视图,比如一个VideoView、一个ImageView 和几个可选按钮。

如果我在布局文件中包含所有可能的子视图,但将所有子视图默认设置为可见性消失,但在运行时适当更改可见性,是否会浪费大量资源?

在运行时根据需要添加视图会更好吗?还有另一种更明智的方法吗?碎片?

【问题讨论】:

    标签: android android-layout android-fragments android-view


    【解决方案1】:

    我更喜欢全部创建并隐藏它们。我注意到我看过的大多数内置 Android 布局都是这样做的。就个人而言,我认为它减少了 NullPointerExceptions 和避免它们所需的检查。

    【讨论】:

    • 您还记得您可以引用任何特定的内置布局来获得奖励积分吗? :)
    • alert_dialog_holo.xml、activity_list.xml、action_bar_home.xml 和 action_bar_title_item 等等。如果您在布局文件夹中搜索 'visibility="gone"',您将得到其余的。
    【解决方案2】:

    通过不在布局文件中创建少量视图所节省的资源通常不会对应用程序的运行时资源消耗产生很大影响,除非它们包含巨大的图像或其他非常大量的资源。

    另一方面,在布局文件中包含这些视图(并隐藏它们)

    • 使它们比在 Java 代码中创建它们更具可读性
    • 导致它们被 Android Lint 检查。

    这就是为什么我总是建议将它们放在布局中。

    【讨论】:

    • 在我的案例中将它们标记为消失的原因是没有关联的媒体(视频、图像、音频等),因此不会有任何附加到它们的资源。感谢您列举静态编译时布局的好处——我同意。
    猜你喜欢
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 2010-09-13
    • 2011-07-27
    • 1970-01-01
    • 2019-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多