问题标签 [android-safe-args]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Android 片段安全参数
有人可以向我解释它是如何工作的吗?
从(MainFragment)点击FAB通过导航组件创建新的片段(HabitEditorScreenFragment)。应用到它 Parcelable 参数。在那个片段中,我将使用新的 Int 参数类型进入新片段(EditColorFragment)。在那个片段中:
在可共享的 viewModel 中保存新的 int
我要用 findNavController().navigateUp() 回去
,现在是奇怪的事情。如果我在编辑字段中输入一些值,那么值将在 safeArgs 值中。但我没有把它保存在任何地方!
更新:
当我在编辑字段中输入一些东西时,它恰好发生了。但:
android - Android Safe Args, nav_graph and enums error: 不兼容的枚举比较总是不成功
尝试传递在此类片段类中定义的枚举类型的参数时,我在这里遇到了安全参数的一个奇怪问题。一些代码,用于澄清。
这是枚举,因为它在“EvaluationFragment”kotlin 类中定义:
这是 nav_graph.xml 文件中定义的相关片段条目:
然后我在 EvaluationFragment 类中有这个作为私有字段:
这也在此类的方法中,这就是发生错误的地方:
现在的问题是,在每个分支中,枚举项都被 Android Studio 用红色下划线并显示此错误:
比较不兼容的枚举 '[ERROR : com.whatever.domain.EvaluationFragment$EnrollmentOutcome]' 和 'EvaluationFragment.EnrollmentOutcome' 总是不成功
尽管如此,代码不仅构建得非常好,而且完全按预期工作。
无论如何,我想知道为什么Android Studio 会在那里抛出错误,以及如何摆脱它并仍然在安全 args 中使用枚举(我的意思是,我可以通过传递一个字符串来轻松解决它并执行所需的转换,我已经在枚举本身中有一个方法,但这有点违背了使用 Safe Args 的意义,不是吗?)。
非常感谢,弗兰
android - 为什么在导航中切换屏幕时不能将 null 作为参数?
我使用navigation
and SafeArgs
to switch screens
and pass data
。
在屏幕上选择A
数据时,在屏幕切换的同时传输数据。
但是,有时屏幕会在没有任何操作的情况下A
切换到屏幕。B
我决定null
在这种情况下发送。
但我不断收到以下错误:
导航.xml
在适配器中
什么原因?
android - 未解决的参考:使用自定义 Parcelable 参数时:Jetpack Navigation
这是我第一次使用 Jetpack Navigation 和 Safe args。使用自定义 Parcelable 作为参数传递给特定片段时出现错误。
这是我在构建时遇到的错误:
这就是我的 FragmentUIDetails 的样子:
}
这就是我的导航图 XML 的样子:
项目中添加的依赖项 -
建造。摇篮(项目) -
建造。摇篮(模块) -
这是我的数据类的样子:
我所尝试的一切:
- 从 androidx.navigation 切换到 android.arch.navigation
- 使缓存无效并重新启动。
- 重建项目。
更新
这就是 FragmentUIDetailsArgs 类的样子:
android - 切换屏幕时Safe Args的参数仍然存在的问题
我Navigation
用来切换屏幕。
移动到B fragment
的A fragment
屏幕上bottom Write menu
。
Safe Args
使用从移动的屏幕返回时也会传递参数B
。
在这种状态下,如果我移动到another bottom menu
然后返回到A
屏幕Write Menu
,Args
则保持原样。
我不知道为什么要保留 args,但我不想要这个。
当数据来自另一个屏幕时,null
我希望代码不被执行。
我希望A
片段屏幕仅从屏幕接收数据B
。
为此,我设置null
为default value
in nav_gaph
,但这没有意义,因为 args 正在维护中。
请告诉我解决方案和原因!
一个片段
nav_graph.xml
android - 找不到 android.arch.navigation:navigation-safe-args-gradle-plugin:2.3.5.?
我正在使用 android 导航组件,但出现错误配置根项目“AndroidCodingChallenge”时出现问题。
无法解析配置“:classpath”的所有工件。找不到 android.arch.navigation:navigation-safe-args-gradle-plugin:2.3.5。在以下位置搜索:
在我的 app.gradle 下面
在我的 commons.gradle 下面
在我声明构建路径的 build.gradle 下面
我在以下答案中尝试过的内容找不到 androidx.navigation:safe-args-gradle-plugin:1.0.0-alpha01并没有帮助我想知道我错过了什么
android - 如果默认值为null,如何使用android导航传递值
我正在使用带有安全参数的 android 导航组件。我将参数设置为可以为空,默认值也为空。
问题是当我想传递任何值时会显示错误:
我的片段 XML 代码:
我的行动:
我不明白问题出在哪里 - 当我删除默认值时就可以了。
android - 导航操作/目的地 /action_creditTabFragment_to_needHelpFragment 无法从当前目的地 Destination(creditFragment) 中找到
我的应用程序使用导航组件,我拥有CreditFragment
并且它使用TabLayout
with ViewPager2
,它包含CreditTabFragment
,当我在CreditTabFragment
我想要导航到NeedHelpFragment
using时findNavController()
。
我怎样才能让导航控制器知道我在上creditTabFragment
?
我试图创建一个childFragmentManager
但没有成功
导航到 NeedHelpFragment 的按钮的 ClickListener
Sweta Jain 显示此错误,我无法从答案中添加 Navigation.findNavController().navigate(action)
android - public final fun actionFragmentAToDetailActivity() 的参数太多
实际上 DetailActivity(需要传递参数)存在于库模块中,我需要从应用程序(FragmentA)启动它,但我收到如下构建错误:
我正在使用 SafeArgs 库来传递数据。
片段A
nav_graph_app.xml(存在于应用模块中)
nav_graph_common_component.xml(存在于库项目中,作为库模块包含在 app 的 build.gradle 中)
任何帮助或指导将不胜感激。