如何让FragmentContainerView仅在主动触发时显示 禁止启动自动加载
问题描述
在Activity布局中添加了承载DialogFragment导航图的FragmentContainerView,期望仅在主动触发时才显示对应的弹窗,但Activity启动时该组件就会自动加载显示,即便在XML中为其设置android:visibility="gone"属性也无效。
对应Activity XML代码
<androidx.fragment.app.FragmentContainerView android:id="@+id/dialogNavigation" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" app:defaultNavHost="false" app:navGraph="@navigation/nav_dialog" tools:layout="@layout/tutorial_dialog_start" />
可行解决方案
- 若项目存在普通页面、弹窗两套独立导航图,可将二者合并,通过导航Action从指定Fragment跳转到对应Dialog即可。
- 在弹窗导航图中设置一个空白Dialog作为起始目的地,需要显示实际弹窗时再从空白Dialog导航到目标弹窗即可。
内容的提问来源于stack exchange,提问作者Edvin Keskin
相关产品推荐
相关产品推荐

