- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 Android 导航组件进行导航。我有一个 LoginFragment,它有一个按钮可以转换到 SignUpFragment。单击按钮时出现此错误。
java.lang.IllegalStateException: View android.support.v7.widget.AppCompatButton{49d9bd1 VFED..C.. ...P.... 201,917-782,1061 #7f090172 app:id/signUpLink} does not have a NavController set
这是我的 nav_graph.xml
<navigation xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
app:startDestination="@id/loginFragment">
<fragment
android:id="@+id/loginFragment"
android:name="org.fossasia.openevent.app.core.auth.login.LoginFragment"
android:label="login_fragment"
tools:layout="@layout/login_fragment">
<action
android:id="@+id/action_loginFragment_to_signUpFragment"
app:destination="@id/signUpFragment" />
</fragment>
</navigation>
这是用于导航的 LoginFragment 中的代码 -
binding.signUpLink.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.action_loginFragment_to_signUpFragment, null));
这是 NavHostFragment Activity 布局文件的摘录 -
<FrameLayout
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior"
android:name="android.navigation.fragment.NavHostFragment"
app:navGraph="@navigation/main_navigation"
app:defaultNavHost="true"/>
最佳答案
目前使用FragmentContainerView不是很友好,必须从supportFragmentManager中访问:
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
在我的 xml 中,我的 FragmentContainerView 看起来像这样:
<androidx.fragment.app.FragmentContainerView
android:id="@+id/nav_host_fragment"
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_toBottomOf="parent"
app:navGraph="@navigation/nav_graph"
/>
这已通过 androidx 导航版本 2.3.0
测试
我删除了旧答案,因为 Google 开发人员已澄清它不再是推荐的解决方案。感谢@JuSTLearnedit,发表评论让我更新这个问题。
关于android - 非法状态异常 : Link does not have a NavController set,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50502269/
我正在编写一个 iPhone 应用程序,但我遇到了一个关于如何管理 View 呈现的问题。事实上,当用户启动应用程序时,会出现一个包含搜索表单的“主页” View 。当用户按下“搜索”按钮时,我想要一
我正在尝试从 VC 转换为嵌入在导航 Controller 中的 VC。 就我的目的而言,这两行代码似乎完成了同一件事,但我想知道它们之间的真正区别是什么以及一个是否对另一个有利。 为此... if
我基本上是在等待 5 秒后尝试导航到其他 fragment 。当我在 onViewCreated 中执行导航过程时,它可以工作,但是当我在 onFinish 中执行时,它给了我下面的错误。 我试图将
我在我的应用程序中使用导航组件,最近它工作正常但是在将项目更新到 AndroidX 之后我收到错误消息 navigation destination DESTINATION_NAME is unkno
我不确定我在这里做错了什么。简单的设置,带有由内部底部栏控制的 fragment 的单个 Activity ,到目前为止一切都很好。开始 fragment 有一个按钮,里面应该导航到另一个 fragm
我正在制作应用程序,它支持不同的设备方向。导航由 Android Jetpack 的 Navigation 进行。横向应用程序主屏幕如下所示。它是列表包装 fragment (它是 NavHostFr
我正在使用新的 android Storyboard来创建应用程序。流程需要如下所示: SplashFragment -> Fragment1 -> Fragment2 以下是 Storyboard(
我正在实现 Espresso 测试。我正在使用带有 NavGraph 范围 ViewModel 的 fragment 。问题是,当我尝试测试 Fragment 时,我得到了一个 IllegalStat
我想将导航 Controller 栏按钮项设置为图像。 我已阅读以下内容 - Add image to a navigationItem's title 我了解如何将其设置为图像。我实际上希望将其设置
我想实现 addOnDestinationChangedListener,但是没有成功。我已经尝试自己实现它,但是 ID 不匹配 NavController mController = Navigat
我基本上为底部导航 View 设置了 3 个 fragment ,所有 fragment 都链接到 activity.xml activity.xml 我放 fragment 标签的地方。 我的 A
试图效仿https://developer.android.com/guide/navigation/navigation-testing ,我有一个预期的错误 org.mockito.excepti
我目前在我的项目中使用 Android 导航架构。它具有可以使用快捷方式启动任何 fragment 的功能。目前我正在使用 NavController 在单击快捷方式时导航到所需的目的地。 但是当我多
我正在寻找的是我的 fragment 是否已经在后堆栈中。 例如,我导航到 Fragment A 到 Fragment B。稍后,我导航到 Fragment B 到 Fragment C。现在,我想
我正在使用导航组件在我的应用程序中导航。它在 fragment 内工作正常,但无法在包含实际导航主机的 Activity 中找到导航主机。 当用户单击 FAB 时,我试图打开一个新 fragment
我在处理多个 NavHost 时遇到问题。这个问题和问的 here 非常相似。 .我认为这个问题的解决方案也会对我有所帮助,但这是 2017 年的帖子,仍然没有答案。 Android 开发者文档没有帮
我在移动应用程序中使用 NavController,其中有一个 fragment ,其中有两个到另一个 fragment 的导航选项。我已在 mobile_navigation.xml 中创建了这两个
我以两种不同的方式在 fragment 之间提供数据传输,第一种是正常工作,而安全数据类型会导致运行时崩溃。我正在使用那个 Android 文档: https://developer.android.
我创建了 AuthHttpProvider,它是一个 Http 包装器,它允许发送 GET/POST/PUT/DELETE 请求并自动向每个请求添加身份验证 token (jwt)。我在我所有的 io
我从侧边菜单启动器启动了一个 ionic 2 应用程序。现在我想将生成的代码移动到应用程序组件(菜单)到一个文件夹中,然后编写一个主组件。当我运行该应用程序时,它向我显示此错误: 原始异常(excep
我是一名优秀的程序员,十分优秀!