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到一个新片段,这样我就可以用一个或另一个替换容器。
在活动之上打开片段的最佳做法是什么?
我使用的一般经验法则:
如果您使用片段,那么您的活动应该非常愚蠢。
这意味着它们本身不应该包含任何视图,并且只包含跟踪片段的逻辑(也许只有活动可以管理的逻辑)。
我会采用当前在您的 Activity 中的所有视图和逻辑,并将其移动到一个单独的 Fragment 中。
然后你可以简单地用新的片段替换“标准”片段。2个片段,干净简洁。