我正在尝试对包含FragmentContainerView
在被放入布局中的片段内部的视图进行膨胀。
- 根视图
- 分段
- 自定义视图
- 片段容器视图
- 自定义视图
- 分段
像这样:
val transaction = fragmentManager.beginTransaction()
transaction.replace(R.id.main_content, Frag(), "tag");
transaction.commitNowAllowingStateLoss()
whereFrag
创建一个像这样膨胀 xml 的视图:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:parentTag="android.widget.FrameLayout">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/nav_graph" />
</merge>
但是当我执行代码时,我的应用程序崩溃了:
原因:java.lang.IllegalStateException:FragmentManager 已经在执行事务
使用时如何避免此错误FragmentContainerView
(注意:如果我使用<fragment>
而不是<androidx.fragment.app.FragmentContainerView>
,一切正常)