Abo*_*ood 7 navigation android android-fragments kotlin android-studio
我对导航图和导航组件不太熟悉,我正在尝试将数据从位于“PrivSectionFragment”中的回收器视图传递到“PrivSectionDetailFragment”。不幸的是,每当我运行该应用程序时,我都会在日志中收到此错误
\n java.lang.IllegalArgumentException: Navigation action/destination com.gazelle.wadifatk:id/action_privSectionFragment_to_privsDetailFragment cannot be found from the current destination Destination(com.gazelle.wadifatk:id/jobsFragment) label=\xd8\xa7\xd9\x84\xd9\x88\xd8\xb8\xd8\xa7\xd8\xa6\xd9\x81 class=com.gazelle.wadifatk.jobLists.jobsFragment\n at androidx.navigation.NavController.navigate(NavController.java:940)\n at androidx.navigation.NavController.navigate(NavController.java:877)\n at androidx.navigation.NavController.navigate(NavController.java:863)\n at androidx.navigation.NavController.navigate(NavController.java:1159)\n at com.gazelle.wadifatk.jobLists.PrivListAdapter.onBindViewHolder$lambda-0(PrivListAdapter.kt:55)\nRun Code Online (Sandbox Code Playgroud)\n这就是它所指的地方// 它指的是我的回收器适配器
\nPushDownAnim.setPushDownAnimTo(holder.card_view)\n //.setScale(PushDownAnim.MODE_SCALE, 0.89f)\n .setOnClickListener {\n val sendData = PrivSectionFragmentDirections\n .actionPrivSectionFragmentToPrivsDetailFragment(priv_list[position])\n Navigation.findNavController(view).navigate(sendData)\n }\nRun Code Online (Sandbox Code Playgroud)\n\n请记住,我能够通过使用相同的动作将数据从“LatestNewsFragment”传递到“NewsDetailsFragment”,但我不知道为什么它接受了这些片段之间传递的数据,但没有“不接受从“PrivSectionFragment”到“PrivSectionDetailFragment”。
\n这是片段的代码
\n<navigation xmlns:android="http://schemas.android.com/apk/res/android"\nxmlns:app="http://schemas.android.com/apk/res-auto"\nxmlns:tools="http://schemas.android.com/tools"\nandroid:id="@+id/my_nav"\napp:startDestination="@id/latestNewsFragment">\n\n<fragment\n android:id="@+id/latestNewsFragment"\n android:name="com.gazelle.wadifatk.newsList.LatestNewsFragment"\n android:label="\xd8\xa7\xd8\xae\xd8\xb1 \xd8\xa7\xd9\x84\xd8\xa7\xd8\xae\xd8\xa8\xd8\xa7\xd8\xb1"\n tools:layout="@layout/fragment_latest_news" >\n <action\n android:id="@+id/action_latestNewsFragment_to_jobsFragment"\n app:destination="@id/jobsFragment"\n app:enterAnim="@anim/nav_default_enter_anim"\n app:exitAnim="@anim/nav_default_exit_anim" />\n <action\n android:id="@+id/action_latestNewsFragment_to_newsDetailFragment"\n app:destination="@id/newsDetailFragment"\n app:enterAnim="@android:anim/slide_in_left"\n app:exitAnim="@android:anim/slide_out_right"\n app:popEnterAnim="@android:anim/slide_in_left"\n app:popExitAnim="@android:anim/slide_out_right" />\n</fragment>\n<fragment\n android:id="@+id/jobsFragment"\n android:name="com.gazelle.wadifatk.jobLists.jobsFragment"\n android:label="\xd8\xa7\xd9\x84\xd9\x88\xd8\xb8\xd8\xa7\xd8\xa6\xd9\x81"\n tools:layout="@layout/fragment_jobs" >\n <action\n android:id="@+id/action_jobsFragment_to_govSectionFragment"\n app:destination="@id/govSectionFragment" />\n <action\n android:id="@+id/action_jobsFragment_to_privSectionFragment2"\n app:destination="@id/privSectionFragment" />\n <action\n android:id="@+id/action_jobsFragment_to_latestNewsFragment"\n app:destination="@id/latestNewsFragment" />\n</fragment>\n<fragment\n android:id="@+id/privSectionFragment"\n android:name="com.gazelle.wadifatk.jobLists.PrivSectionFragment"\n android:label="PrivSectionFragment" >\n <action\n android:id="@+id/action_privSectionFragment_to_privsDetailFragment"\n app:destination="@id/privsDetailFragment"\n app:enterAnim="@anim/nav_default_enter_anim"\n app:exitAnim="@anim/nav_default_exit_anim" />\n <action\n android:id="@+id/action_privSectionFragment_to_jobsFragment"\n app:destination="@id/jobsFragment" />\n</fragment>\n<fragment\n android:id="@+id/newsDetailFragment"\n android:name="com.gazelle.wadifatk.newsList.NewsDetailFragment"\n android:label="\xd8\xa7\xd9\x84\xd8\xaa\xd9\x81\xd8\xa7\xd8\xb5\xd9\x8a\xd9\x84"\n tools:layout="@layout/fragment_news_detail">\n <action\n android:id="@+id/action_newsDetailFragment_to_latestNewsFragment"\n app:destination="@id/latestNewsFragment"\n app:enterAnim="@android:anim/slide_in_left"\n app:exitAnim="@android:anim/slide_out_right"\n app:popEnterAnim="@android:anim/slide_in_left"\n app:popExitAnim="@android:anim/slide_out_right" />\n <argument\n android:name="news_data_list"\n app:argType="com.gazelle.wadifatk.newsList.NewsListViewModel" />\n\n</fragment>\n\n <fragment\n android:id="@+id/privsDetailFragment"\n android:name="com.gazelle.wadifatk.jobLists.PrivsDetailFragment"\n android:label="\xd8\xa7\xd9\x84\xd8\xaa\xd9\x81\xd8\xa7\xd8\xb5\xd9\x8a\xd9\x84"\n tools:layout="@layout/fragment_privs_detail" >\n\n <argument\n android:name="priv_data_list"\n app:argType="com.gazelle.wadifatk.jobLists.PrivListViewModel" />\n <action\n android:id="@+id/action_privsDetailFragment_to_privSectionFragment"\n app:destination="@id/privSectionFragment" />\n\n</fragment>\nRun Code Online (Sandbox Code Playgroud)\n\n这是 jobsFragment() 的屏幕截图
\n
您只需JobsFragment在导航图中添加,并在此片段中添加操作PrivsDetailFragment。
<fragment\n android:id="@+id/jobsFragment"\n android:name="com.gazelle.wadifatk.jobLists.jobsFragment"\n android:label="\xd8\xa7\xd9\x84\xd9\x88\xd8\xb8\xd8\xa7\xd8\xa6\xd9\x81"\n tools:layout="@layout/fragment_jobs" >\n <action\n android:id="@+id/action_jobsFragment_to_govSectionFragment"\n app:destination="@id/govSectionFragment" />\n <action\n android:id="@+id/action_jobsFragment_to_latestNewsFragment"\n app:destination="@id/latestNewsFragment" />\n <action\n android:id="@+id/action_jobsFragment_to_privsDetailFragment"\n app:destination="@id/privsDetailFragment"\n app:enterAnim="@anim/nav_default_enter_anim"\n app:exitAnim="@anim/nav_default_exit_anim" />\n</fragment>\nRun Code Online (Sandbox Code Playgroud)\n然后在您的适配器中,使用以下操作:
\nPushDownAnim.setPushDownAnimTo(holder.card_view)\n //.setScale(PushDownAnim.MODE_SCALE, 0.89f)\n .setOnClickListener {\n val sendData = JobFragmentDirections.actionJobFragmentToPrivsDetailFragment(priv_list[position])\n Navigation.findNavController(view).navigate(sendData)\n }\nRun Code Online (Sandbox Code Playgroud)\n您可以privSectionFragment从导航图中删除。
| 归档时间: |
|
| 查看次数: |
18756 次 |
| 最近记录: |