使用 LinearLayout 代替 FrameLayout 可以吗?

Is it fine to use LinearLayout instead of FrameLayout?

我正在构建一个包含两个片段的 Activity MainActivity 的应用程序。我遇到了许多使用 FrameLayout 作为片段布局的父容器的教程。

但是,我发现我仍然可以使用 LinearLayout 作为片段的父容器,并且它工作得很好(到目前为止)。

我的问题是,不使用 FrameLayout 作为片段布局的父容器是否有任何副作用?

如果没有,那么使用 FrameLayoutLinearLayout(或其他可能的布局)作为片段布局的父容器有什么优势。

Fragments 本身就像任何 View 一样呈现,因此您可以使用任何父 ViewGroup,具体取决于您希望布局的外观。这意味着 LinearLayoutFrameLayout 根本没有绑定到 Fragments 的固有优势。

FrameLayoutLinearLayout 之间的主要区别在于 Views 堆栈在 FrameLayout 中。

换句话说,如果您希望 Fragments 可能重叠,请使用 FrameLayout。如果您希望它们线性显示,请使用 LinearLayout。如果它是全屏 Fragment 那么您选择哪个并不重要。

FrameLayout 比LinearLayout 效率更高,RelativeLayout.Because 是最简单的基础布局,子布局之间没有关联。 FrameLayout 适用于 stack-up 视图,常与 ScrollView 一起使用。

非常好。您可以使用。但是,一般来说:

LinearLayout 用于垂直或水平逐一对齐视图。以便多个子视图可以相应地排列。

FrameLayout 用于加载视图一个在另一个之上。所以 FrameLayout 用于保存单个子视图,因为在 FrameLayout 中很难管理多个视图。对于前。如果你想使用单个 CardView 那么 FrameLayout 是完美的。