使用 LinearLayout 代替 FrameLayout 可以吗?
Posted
技术标签:
【中文标题】使用 LinearLayout 代替 FrameLayout 可以吗?【英文标题】:Is it fine to use LinearLayout instead of FrameLayout? 【发布时间】:2016-04-05 01:55:20 【问题描述】:我正在构建一个包含两个片段的 Activity MainActivity
的应用程序。我遇到了许多使用FrameLayout
作为片段布局的父容器的教程。
但是,我知道我仍然可以使用 LinearLayout
作为片段的父容器,并且它工作得非常好(到目前为止)。
我的问题,不使用FrameLayout
作为片段布局的父容器有什么副作用吗?
如果没有,那么使用FrameLayout
相对于LinearLayout
(或其他可能的布局)作为片段布局的父容器有什么优势。
【问题讨论】:
你能把你使用FrameLayout
和LinearLayout
的代码贴出来
你应该改一下标题,上面写着fragmentlayout...
【参考方案1】:
Fragments
本身就像任何View
一样呈现,因此您可以根据您希望布局的外观使用您想要的任何父ViewGroup
。这意味着 LinearLayout
与 FrameLayout
与 Fragments
没有任何固有的优势。
FrameLayout
和 LinearLayout
之间的主要区别在于 Views
堆栈在 FrameLayout
内。
换句话说,如果您希望Fragments
可能重叠,请使用FrameLayout
。如果您希望它们线性显示,请使用LinearLayout
。如果是全屏Fragment
,那么您选择哪个可能并不重要。
【讨论】:
这是一个简单而完美的答案。【参考方案2】:FrameLayout比LinearLayout和RelativeLayout效率更高。因为它是最简单的基础布局,子布局之间没有关联。 FrameLayout适用于stack-up view,常与ScrollView配合使用。
【讨论】:
【参考方案3】:完全没问题。您可以使用。但是,总的来说:
LinearLayout 用于垂直或水平对齐视图。以便多个子视图可以相应地排列。
FrameLayout 用于加载一个在另一个之上的视图。所以FrameLayout
用于保存单个子视图,因为在FrameLayout
中很难管理多个视图。对于前。如果您想使用单个CardView
,那么FrameLayout
是完美的。
【讨论】:
以上是关于使用 LinearLayout 代替 FrameLayout 可以吗?的主要内容,如果未能解决你的问题,请参考以下文章
Android:如何让LinearLayout的background在整个屏幕中心显示