在片段容器上调用FragmentTransaction.replace()会发生什么?

时间:2019-04-27 08:35:12

标签: android xml android-fragments kotlin

我的应用有1个活动和多个片段。

在我的活动中,容器是FrameLayout,然后将初始片段添加到该容器中,然后使用replace()来更改片段。

初始添加transaction.add(R.id.fragment_container, firstFragment, "FirstFragment")

初始添加后transaction.replace(R.id.fragment_container, newFragment, "FragmentTag")

activity_main.xml

...
<FrameLayout
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:id="@+id/fragment_layout"
    app:layout_constraintTop_toBottomOf="@id/toolbar"
    app:layout_constraintBottom_toTopOf="@id/bottomNav">
</FrameLayout>
...

我的问题是,当我向R.id.fragment_layout添加和替换一个片段时会发生什么?

说我的碎片都是ConstraintLayout-ConstraintLayout嵌套在FrameLayout内吗?

1 个答案:

答案 0 :(得分:2)

是的,您的ConstrainLayout将嵌套在FrameLayout中,只需打开Layout Inspector(工具->布局检查器),您将看到以下内容: enter image description here