问题标签 [jetpack-compose-navigation]

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.

0 投票
1 回答
34 浏览

android - 使用 AnimatedNavHost 时屏幕上不显示任何内容

我正在使用伴奏动画库:

我有以下 AnimatedNavHost:

我的 AuthScreen 很简单:

当我启动应用程序时,屏幕上什么都没有显示?没有崩溃。任何人都可以帮忙吗?谢谢

PS我也在使用:

我正在使用以下导入:

0 投票
0 回答
53 浏览

android - 撰写导航 - 在嵌套图中导航到目的地。如何在嵌套图中封装目的地?

根据嵌套图的文档。

嵌套图文档

嵌套图封装了它的目的地。与根图一样,嵌套图必须将目的地标识为起始目的地。嵌套图之外的目的地(例如根图上的目的地)仅通过其起始目的地访问嵌套图。

在 Compose Navigation 的文档中提到嵌套图封装了它的目的地。

编写嵌套图文档

嵌套图封装了它的目的地。

在我使用 Compose Navigation 的项目中,有 4 个目的地,其中之一是嵌套图。而且我可以安全地从外部图中的任何目的地到达嵌套图的特定目的地。而这个特定的目的地并不是嵌套图的起始目的地。项目中使用的版本 androidx.navigation:navigation-compose:2.5.0-alpha01

代码示例:

目的地:

如果我们以导航图(一种 XML 资源)为例,我们无法选择特定的嵌套图目的地作为目的地。

在此处输入图像描述

我们如何使用 jetpack Compose Navigation 封装 nestead 图形目的地?

0 投票
0 回答
124 浏览

android - Jetpack Compose Navigation:如何将数组作为参数传递?

我有一个显示过滤器选项的过滤器对话框:

在此处输入图像描述

当我单击“父平台”部分时,我将导航到PlatformsScreen带有两个参数的。参数一个是parentint ,第二个是平台,它是一个 int 数组:

作为最后一部分,这里是 myFilterViewModel包含 myparentIdplatformsarray :

parent我的论点没有问题。我可以毫无问题地传递它,但是数组类型导致崩溃并出现以下错误: java.lang.UnsupportedOperationException: Arrays don't support default values.

0 投票
1 回答
30 浏览

android-jetpack-compose - 如何从子可组合控制脚手架的 FloatingActionButton onClick?

是否可以从 a 可组合的屏幕中设置 a 在FloatingActionButtonaonClick内部的值,该屏幕也在 a 内部?在我的示例中,我希望能够更改 FAB 的 onClick 以从屏幕可组合内的值 ( ) 进行一些计算,而无需将值提升到位于可组合( ) 的位置。ScaffoldNavHostScaffoldnameScaffoldMyActivity()

0 投票
0 回答
20 浏览

android - 在第二个屏幕中的事件发生后更新一个屏幕的 ViewModel 中的状态 - Jetpack Compose Navigation

我正在构建一个用于解决问卷的应用程序。该应用程序具有三个屏幕MainMenuViewQuestionnaireViewSettingsView。用户可以从 MainMenu 输入QuestionnaireView,但是除非userId尚未提交(我将userId保存在 SharedPreferences 中),否则SettingsView他们无法输入。QuestionnaireViewSettingsView

在我MainMenuViewModel创建isUserIdFilled的 mutableState 中,它指示(通过检查checkUserIdFilled())是否已提交userId 。

在 NavigationHost 中,我正在检查userId是否已提交并导航到SettingsViewor QuestionnaireViewif ononQuestionnaireClick工作并导航到SettingsView如果userId尚未提交。但是,isUserIdFilled状态没有更新(init inMainMenuViewModel没有再次执行,因为 ViewModel 仍在后台堆栈中并且没有重新创建)并且我一直被重定向到SettingsView(除非我重新启动应用程序)。所以我checkUserIdFilled()在 NavHost 中添加了调用。但是,我不喜欢这种方法,因为它会改变 Composable 函数的状态。

有一个更好的方法吗?一旦以干净的方式提交了userIdisUserIdFilled,如何更新?SettingsViewModel

0 投票
0 回答
24 浏览

android-jetpack-compose - Jetpack Compose 导航:登录屏幕和带有底部导航的不同屏幕

我的目标是拥有一个LoginScreen我可以从中导航到InternalScreen. InternalScreen应该有/是一个底部导航栏,可以导航到内部空间中的多个其他屏幕/路线。

这就是我想象NavGraph中的样子:

我的想法是在可组合文件中创建一个Scaffold带有 a的,但我没有把它放在我的位置,因为我说还必须包含.BottomNavigationBarInternalScreenNavGraphNavGraphBottomNavigationBar

我应该如何处理这个?很抱歉,如果这个问题已经得到解答,我找不到关于这个特殊案例的任何信息。

0 投票
0 回答
26 浏览

android - 使用 videoViews 在 2 个可组合项之间导航非常慢

我有 2 个屏幕,里面有 videoview,我使用 accompanist-navigation-animation 库在它们之间进行转换。两个组成“屏幕”之间的转换很慢,我认为这可能与我如何开始视频有关,但我无法弄清楚。此外,当从第一个屏幕转换到第二个屏幕时,重新组合会运行多次。有更多知识的人可以看看我如何处理视频播放。

}