- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用底部导航
。
在切换画面中,还有一个打开dialog fragment
的功能。
为此我还使用了导航。
这是因为,一旦此dialog
完成,data
必须传送到打开该对话框的屏幕。
为此我使用了safe args
。
但是我得到了和标题一样的错误。
我知道错误在哪里,但我不知道为什么会发生。
在Stack Overflow上搜索了一下,有人和我遇到过同样的问题,但似乎不是一个确切的解决方案,因为情况不同。
nav_graph
<navigation 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"
android:id="@+id/nav_graph"
app:startDestination="@id/calendar">
<fragment
android:id="@+id/calendar"
android:name="com.example.writeweight.fragment.CalendarFragment"
android:label="fragment_calendar"
tools:layout="@layout/fragment_calendar" >
</fragment>
<fragment
android:id="@+id/list"
android:name="com.example.writeweight.fragment.WorkoutListFragment"
android:label="fragment_workout_list"
tools:layout="@layout/fragment_workout_list" />
<fragment
android:id="@+id/write"
android:name="com.example.writeweight.fragment.WritingRoutineFragment"
android:label="WritingRoutineFragment"
tools:layout="@layout/fragment_writing_routine">
<action
android:id="@+id/action_write_to_bodyPartDialog"
app:destination="@id/bodyPartDialog" />
<argument
android:name="title"
app:argType="string"
android:defaultValue="Write" />
</fragment>
<dialog
android:id="@+id/bodyPartDialog"
android:name="com.example.writeweight.fragment.BodyPartDialogFragment"
android:label="BodyPartDialogFragment"
tools:layout="@layout/fragment_body_part_dialog">
<action
android:id="@+id/action_bodyPartDialog_to_write"
app:destination="@id/write">
</action>
</dialog>
</navigation>
MainActivity
class MainActivity : AppCompatActivity() {
private lateinit var bottomNav: BottomNavigationView
private lateinit var navController: NavController
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
bottomNav = findViewById(R.id.bottom_nav)
val navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_container) as NavHostFragment
navController = navHostFragment.navController
bottomNav.setupWithNavController(navController)
}
}
DialogFragment
class BodyPartDialogFragment : DialogFragment() {
private lateinit var ll: LinearLayout
private lateinit var startBtn: Button
private lateinit var title: String
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
val view: View = inflater.inflate(R.layout.fragment_body_part_dialog, container, false)
initView(view)
setLayout()
startBtn?.setOnClickListener { v ->
title = BodyPartCustomView.getTitle()
val action = BodyPartDialogFragmentDirections.actionBodyPartDialogToWrite(title)
findNavController()?.navigate(action) // Possibly the location of the error.
dismiss()
}
return view
}
private fun initView(view: View) {
ll = view.findViewById(R.id.ll_body_part)
startBtn = view.findViewById(R.id.start)
}
private fun setLayout() {
ll?.apply { clipToOutline = true }
}
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
val dialog:Dialog = super.onCreateDialog(savedInstanceState)
dialog.window?.setBackgroundDrawable(ColorDrawable(Color.TRANSPARENT))
dialog.setCanceledOnTouchOutside(false)
return dialog
}
override fun onDismiss(dialog: DialogInterface) {
Toast.makeText(context, "CHECK", Toast.LENGTH_SHORT).show()
}
}
最佳答案
导航前先检查当前目的地即可解决
例如
fragment A、B 和 C
在单击 fragment A 中导航到 C 的按钮时从 A 导航到 B 在某些情况下可能会导致崩溃
为此,您应该首先检查当前目的地,如下所示:
if(findNavController().currentDestination?.id==R.id.AFragment)
findNavController().navigate(
AFragmentDirections.actionAFragmentToCFragment()
)
关于android - 我该如何修复 `Navigation action/destination cannot be found from the current destination Destination` 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67976599/
我正在使用底部导航。 在切换画面中,还有一个打开dialog fragment的功能。 为此我还使用了导航。 这是因为,一旦此dialog 完成,data 必须传送到打开该对话框的屏幕。 为此我使用了
我一般是导航图和导航组件的新手,我正在尝试将数据从位于“PrivSectionFragment”中的回收器 View 传递到“PrivSectionDetailFragment”。不幸的是,每当我运行
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
我有一个案例需要将图像存储在不同的目录中。所以我将 multer 设置为。 app.use(multer({ dest: path.join(__dirname, '`public/ass
我在我的应用程序中使用了导航组件。我把我的应用程序上传到firebase进行测试。应用程序在大多数设备中正常工作,但在某些设备中应用程序崩溃并显示此图像中的错误。。这是我的导航文件代码。为什么会这样呢
有人在为 appflow 调用 update_flow 时遇到此错误吗? errorMessage": "调用 UpdateFlow 操作时发生错误 (ValidationException):更新流
我为 RSocket 消息写了一个小演示 问题是我无法访问 Rsocket端点, 我从服务器收到以下异常: 客户端: 配置: @Bean RSocket rSocket() { return
当我尝试在 viewpager 中从一个 Fragment 导航到另一个 Fragment 时,我遇到了 Android Navigation Architecture 组件的问题,我收到此错误: j
我正在尝试使用 travis-ci.org 实现持续集成。 这是我当前的 .travis.yml 配置: language: swift osx_image: xcode8.3.3 xcode_pro
当发生配置更改并因此重新创建我的 Activity 和 Fragment 时,我的导航 Graph 范围内的 ViewModel 不可用,而 Fragments 已经被再次创建。 似乎在 navGra
所以我使用的是Django 4.2,它通过Django-JET-REBOOT Fork与Django-JET管理包一起使用;它通过良好的功能和用户体验增强了管理。。每次我将我的应用程序部署到生产环境中
我正在完成我的 CISCO C 类(class),我对以下函数有疑问。 谁能给我解释一下这个函数的逻辑,尤其是这里 --destination 的用法? char *mystrcat(char *de
题目地址:https://leetcode-cn.com/problems/destination-city/ 题目描述 给你一份旅游线路图,该线路图中的旅行线路用数组 paths 表示,其中 p
尝试在服务器上运行应用程序时,我的集成机器人提示... xcodebuild: error: No destinations were specified with the -destination
我正在使用下面的 Java 代码进行 SAP 连接,但我不知道要在 getDestination() 方法中放入什么内容。请指导我如何找到目的地的值(value)或投入什么? createDesti
当绘制路径然后使用 globalCompositeOperation = "destination-out" 绘制完全相同的路径时,如下所示: function drawPath(ctx){ ct
我正在尝试创建径向进度 View 。 Canvas 中的第二条弧应该只清除 Canvas 的一小部分,但它却将其全部清除。 我用过: this.ctx.globalCompositeOperation
我正在从 jboss 5 迁移到 wildfly 12。我陷入了一个异常(exception)我正在java 8中使用wildfly 12和jndi进行ejb(3.1)调用我已经在 Wildfly 控
我想向当前导航图注入(inject)一个新的目的地。 我注意到 NavGraph 有一个方法 void addDestination(@NonNull NavDestination node) 但我找
我有一系列数据在书中的每个工作表中处于相同位置,并且将始终处于该位置。运行宏时,应将数据复制并添加到报告表中。我有那部分工作,但我需要使用特殊粘贴: .PasteSpecial xlPasteValu
我是一名优秀的程序员,十分优秀!