SafeArgs 不会生成

SafeArgs does not get generated

我正在使用导航组件,但无法生成 Args class,因此我可以通过以下方式在目的地 Fragment 中使用它:

private val myArgs by navArgs<MyDestFragmentArgs>()

// later in code access properties from args
username = myArgs.username

我看到生成了 MySourceFragmentDirections,所以我假设插件使用正确。我尝试在 Android Studio 中清理和重建项目,但没有看到生成任何 *Args classes。

我的 nav_graph.xml 包含:

<fragment
    android:id="@+id/mySourceFragment"
    android:name="com.example.MySourceFragment"
    android:label="@string/nav_title_source"
    tools:layout="@layout/source_fragment">

    <action
        android:id="@+id/action_to_dest"
        app:destination="@id/myDestFragment">

        <argument
            android:name="username"
            app:argType="string" />

    </action>

</fragment>

我意识到我的 nav_graph.xml 格式不正确(argument 元素应该在目标片段内,而不是在源片段中定义的 action 元素内)如下:

    <fragment
        android:id="@+id/mySourceFragment"
        android:name="com.example.MySourceFragment"
        android:label="@string/my_source_screen_title"
        tools:layout="@layout/my_source_fragment">

        <action
            android:id="@+id/action_to_dest"
            app:destination="@+id/myDestinationFragment" />

    </fragment>

    <fragment
        android:id="@+id/myDestinationFragment"
        android:name="com.example.MyDestinationFragment"
        android:label="@string/my_dest_screen_title"
        tools:layout="@layout/my_dest_fragment">

        <argument
            android:name="username"
            app:argType="string" />
    </fragment>