【问题标题】:Android UI: Most efficient way to have multiple elements in a single activityAndroid UI:在单个活动中拥有多个元素的最有效方式
【发布时间】:2018-10-31 03:58:16
【问题描述】:

在我正在构建的 Android 应用程序中,我有一个包含多个按钮和文本视图的活动。根据用户操作,我隐藏元素和/或显示它们。这是故意的,因为我不希望用户更改活动。

为了更清楚起见,活动是一个类型控制器。因此,当用户启用一个选项时,会出现不同的按钮。这就是为什么我希望他们都参加同一个活动。

我担心性能。目前一切都在约束布局中。有没有一种有效的方法可以在同一个活动中拥有多个 UI 元素,并且能够随意隐藏和显示它们?我应该研究 Fragments 吗?

提前谢谢你。

【问题讨论】:

  • @JaiminModi 谢谢你的链接,我会进一步研究 Fragments
  • 阅读您的要求,我认为Fragment 不符合您的需要。 Fragment 意图包含活动的含义部分,它有自己的工作并且可以与其他人交互,例如 LoginFragment、ProfileFragment... 您只想在交互的基础上显示/隐藏活动中的一些视图。将需要显示/隐藏的视图包裹在 ViewFlipper 中。它很小,很容易与这样的小盒子一起使用。
  • @GeneralNfG Fragments 可以与 ViewPager、ViewFlipper、NavigationDrawer 一起使用,如果有任何特殊要求可以在单个屏幕上显示和更新特定部分。我认为您不应该将 Fragment 用于您要求的此类事情。
  • 我查看了您的建议并发布了我的结论作为答案。非常感谢大家。

标签: android xml performance user-interface memory-efficient


【解决方案1】:

事实证明,没有一个明确的答案。

有一些解决方案可能会被证明是有用的,我将它们列在下面以供任何可能偶然发现的人使用:

  • Fragment 在布局中有多个独立部分时很有用。您在不同Fragments的元素之间的通信受到限制。

  • ViewStub 用于布局中很少使用的一些元素。通过不膨胀 ViewStub 中的元素,这使得布局的初始加载更轻。然后,您可以按需为元素充气。

  • ViewFlipper 允许您循环浏览元素列表(或使用setDisplayedChild 选择性地显示它们)。它主要用于单个元素,所以如果你用它来显示和隐藏嵌套布局,我不确定它的性能。

  • ConstraintLayout 可能是与我类似的情况的最佳解决方案,在这种情况下,按钮和文本的布局以复杂的方式隐藏和显示。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-14
    • 1970-01-01
    相关资源
    最近更新 更多