在活动之上打开片段的最佳实践是什么

Jos*_*lez 1 java performance android 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">

        .
        .
        .
Run Code Online (Sandbox Code Playgroud)

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

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

在活动之上打开片段的最佳做法是什么?

Moo*_*oom 6

我使用的一般经验法则:

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

这意味着它们本身不应该包含任何视图,并且只包含跟踪片段的逻辑(也许只有活动可以管理的逻辑)。

我会采用当前在您的 Activity 中的所有视图和逻辑,并将其移动到一个单独的 Fragment 中。

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