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>
我正在使用导航组件,但无法生成 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>