我试图膨胀一个包含FragmentContainerView
的视图,该视图在被放入布局中的fragment中。
- 根视图
- 片段
- 自定义视图
- FragmentContainerView
- 自定义视图
- 片段
就像这样:
val transaction = fragmentManager.beginTransaction()
transaction.replace(R.id.main_content, Frag(), "tag");
transaction.commitNowAllowingStateLoss()
Frag
创建了一个视图,该视图将填充类似于以下 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>
,一切都正常)
nav_graph
片段来实现。干杯 \o/(附言:当在片段之间切换时,我遇到的一个问题可能是由于您指出的问题[悄悄地引起了问题]。感谢您提供的信息) - Augusto Carmo