本文介绍了未设置Android导航java.language.IlLegalStateException片段类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Navigation Drawer
在此,当我单击保存结果时,它会显示所有保存的结果和日期。
The image showing saved results in SavedResultsFragment
Navigation Layout
当我单击任何项目时,它应该在ShowSavedResltsFragment
中显示该被点击项目的所有详细信息,但安装应用程序崩溃并引发IllegalStateException
,且未设置片段类。
The image showing navigation layout and code
The image showing code logic where trying to switch to ShowResultsFragment
from SavedResultFragment
SavedResultFragment
到ShowSavedResultsFragment
之间导航时,几乎只有一个问题。我试图搜索官方文档和堆栈溢出,但没有找到任何我面临的东西。官方文档提示navHostfragment
没有正确实现,这可能会触发上述异常,但我使用的是他们的官方文档,但我在这里所做的唯一一件事就是通过导航抽屉导航到Fragment
,然后从该片段尝试导航到另一个片段,这就是它中断的地方。
Image showing exception 编辑:NavHostFragment代码
<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools">
<data>
</data>
<merge>
<androidx.drawerlayout.widget.DrawerLayout
android:id="@+id/drawerLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<androidx.fragment.app.FragmentContainerView
android:id="@+id/myNavHostFragment"
android:name="androidx.navigation.fragment.NavHostFragment"
android:layout_width="0dp"
android:layout_height="0dp"
app:defaultNavHost="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:navGraph="@navigation/navigation" />
</androidx.constraintlayout.widget.ConstraintLayout>
<com.google.android.material.navigation.NavigationView
android:id="@+id/navVew"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="start"
app:headerLayout="@layout/nav_header"
app:menu="@menu/nav_drawer_menu" />
</androidx.drawerlayout.widget.DrawerLayout>
</merge>
</layout>
推荐答案
导航图表中ShowSavedResultsFragment
的声明没有附加name
属性。
如果您查看SavedResultFragment
声明,您会注意到它有一个name
属性。
ShowSavedResultsFragment
声明添加name
属性。name
属性的值应该是ShowSavedResultsFragment
类的包名。(点)类的名称。类似于com.xxx.yyy.savedresult.ShowSavedResultsFragment
这篇关于未设置Android导航java.language.IlLegalStateException片段类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!