我有一个用XML定义的图,并且我在我的NavGraph中添加了一个DialogFragment作为片段之一。当我在该导航控制器上使用resId和bundle调用NavController.navigate时,我看不到显示任何对话框。有没有什么方法可以用DialogFragment代替标准片段?
<fragment
android:id="@+id/noLoginDialog"
android:name="com.ram.view.NoLoginDialog"
android:label="NoLoginDialog">
<argument
android:name="argTitle"
android:defaultValue="null"
app:type="string"/>
<argument
android:name="argBody"
android:defaultValue="null"
app:type="string"/>
<argument
android:name="argButton"
android:defaultValue="null"
app:type="string"/>
</fragment>
我的action定义如下
<container_fragment
android:id="@+id/homeFragment"
android:name="com.ram.home.HomeFragment"
android:label="HomeFragment">
<action
android:id="@+id/action_homeFragment_to_noAuthAlertDialog"
app:destination="@id/noLoginDialog"/>
</container_fragment>
我对activity和fragments的其他操作都运行得很好。
发布于 2020-09-09 00:40:30
是的,您可以从导航中调用DialogFragment,您只需显式地告诉导航您将使用对话框
<dialog
android:id="@+id/simCancelFinish"
android:name="mk.telekom.kiosk.ui.dialogs.SimCancelFinish"
android:label="SimCancelFinish" >
<action
android:id="@+id/action_simCancelFinish_to_stornoSimFragment"
app:destination="@id/stornoSimFragment"
app:popUpTo="@id/stornoSimFragment"
app:popUpToInclusive="true" />
</dialog>
https://stackoverflow.com/questions/51756325
复制相似问题