【问题标题】:What is the purpose of FrameLayout and in which scenario should we use it?FrameLayout 的目的是什么,我们应该在什么场景下使用它?
【发布时间】:2012-05-21 06:28:02
【问题描述】:

FrameLayout 在 Android 中的作用是什么?有没有针对它设计的特定场景?

在我的 Android 应用程序中,我有一个场景,我必须显示两个 ImageViews,一个接一个。这是一个 .png 图像文件,在该图像上可绘制 9 个补丁。

为此我应该使用哪个ViewGroupRelativeLayoutFrameLayout

我还想知道每个ViewGroups 应该用于不同的场景。

【问题讨论】:

    标签: android android-framelayout android-relativelayout android-viewgroup


    【解决方案1】:

    我不记得我是如何回答这个问题的,但我的答案可以帮助任何人:

    如你所见here

    FrameLayout 的设计目的是在屏幕上屏蔽一个区域以显示单个项目。通常,应该使用 FrameLayout 来保存单个子视图,因为很难以一种可缩放到不同屏幕尺寸而又不相互重叠的方式来组织子视图。

    一般来说,让 2 个视图一个一个重叠是没有用的,因为你会产生过度绘制效果(屏幕上的一个区域被 gpu 多次绘制,这真的没用)。

    如果你真的需要,那么你需要使用 onDraw 方法(你可以看到一个例子here)和 Canvas API(看看here)和clipRect 方法(你可以看到一个例子@987654324 @)

    关于FrameLayout或者RelativeLayout,如果你想保持简单或者你的activity已经有足够的嵌套布局,最好使用FrameLayout。在 2017 年,约束布局也可能会有所帮助。

    【讨论】:

      【解决方案2】:

      是的,您可以在您的场景中使用FrameLayout

      【讨论】:

      • 我可以使用还是应该使用? :) 是否存在与使用框架或相对布局相关的性能问题?希望你明白我的意思。
      • @Ankit 我不确定性能问题(我假设FrameLayout 的内存占用更小,因为它更简单)。 FrameLayout 更容易配置(只是Gravity.LEFTGravity.RIGHT 等)RelativeLayout 更复杂且更易于配置。只需选择您需要的情况的复杂性。
      猜你喜欢
      • 1970-01-01
      • 2022-01-02
      • 2013-08-11
      • 2019-05-09
      • 2021-10-25
      相关资源
      最近更新 更多