在活动顶部打开片段的最佳实践是什么

时间:2018-07-10 21:09:08

标签: java android performance android-layout

我有一个活动,上面已经有很多元素,我想在活动上打开一个片段。

我想使用片段而不是活动,以便可以传递一些无法序列化或可解析的对象。

到目前为止,我设法通过执行以下操作来做到这一点:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent">

    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:visibility="gone"/>

    <RelativeLayout
        android:id="@+id/main_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        .
        .
        .

在我的活动中,我只是将fragment_container更改为VISIBLE,然后执行片段事务以在其中添加片段,同时还将具有我活动的所有视图的main_container设置为GONE。 / p>

我知道这不是一个很好的解决方案,我一直在考虑将main_container中的所有视图移动到一个新片段,以便可以将一个或另一个容器替换。

在活动顶部打开片段的最佳实践是什么?

1 个答案:

答案 0 :(得分:3)

我使用的一般经验法则:

如果使用片段,那么您的活动应该非常愚蠢。

这意味着它们本身不应包含任何视图,而仅包含用于跟踪您的片段的逻辑(可能还包括只有Activity可以管理的逻辑)。

我将获取您“活动”中当前存在的所有视图和逻辑,并将其移至单独的片段中。

然后,您可以简单地用新片段替换“标准”片段。 2个片段,干净简单。