- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个旧版应用程序,我们开始迁移到 Jetpack Compose。
该应用程序只有一个 Activity ,使用带有导航 XML 图的导航组件在 fragment 之间导航。
我们正在遵循这种方法:
NavHostFragment.findNavController(this).navigate(directionToFragment2)
当创建一个可组合来替换 Fragment1 UI 时,我们如何实现从这个可组合到 Fragment2 的导航?
val navController = rememberNavController()
但这似乎是与 fragment 使用的导航 Controller 不同的导航 Controller 。
最佳答案
你是对的,你不能使用 rememberNavController()
- 这将创建一个全新的嵌套 NavController
仅适用于可组合的目的地。
根据 testing guide ,强烈建议避免直接引用任何 NavController
在您的任何可组合项本身内(即 HomeScreen
可组合项)。相反,建议传递一个 lambda,当您的可组合组件想要导航时,它可以触发。
然后,您的 fragment (在您的 setContent
上调用 ComposeView
的 fragment )将负责实现该 lambda 并调用 NavHostFragment.findNavController(this).navigate(directionToFragment2)
.
作为(不太推荐的)替代方案,您还可以使用 LocalView.current.findNavController()
随着 fragment 填充 NavController
在 View 级别以及 LocalView
指向ComposeView
托管您的可组合。
关于android - 在 Jetpack Compose 中使用 NavHostFragment,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67184520/
我正在运行 Android Studio 3.6.3,我正在尝试使用作为 Android Jetpack 一部分的新导航资源。我做了Navigation Codelab了解如何使用此功能。 在我的项目
我正在将 Android 的导航架构组件集成到我的应用中。我在将数据从 Activity 传递到 fragment 开头时遇到了一些问题,所以我遵循了这个答案:Navigation Architect
我目前正在将导航组件实现到我的应用程序中,但无论我做什么,似乎发现 NavHostFragment 都不起作用。 我已经尝试过、重建、失效和重新启动、更改名称以及更新我的 Android Studio
好像使用 FragmentContainerView不能开箱即用? 这是我使用 fragment-ktx:1.2.0-rc01 的代码我总是遇到这个错误: Caused by: java.lang.
我正在使用带有导航组件的单 Activity 多 fragment 。如何隐藏某些 fragment 的底部导航栏? 我尝试了以下方法: 通过数据绑定(bind)控制底部导航栏的可见性。(有缺陷) 在
目前我有以下场景:用户必须登录才能使用该应用程序。这意味着我使用了 2 个 nav_graphs,一个用于所有内容的主图,然后是一个嵌套的主页图,用于在您登录后查看 View 。 登录后,底部导航栏会
我有一个包含多个功能模块的应用程序,我想在我的主模块中使用单个 NavHostFragment 进行导航。 app | | | feature1 | featu
如果您对以下段落有理解困难,请查看我制作的流程图。 我目前正在制作一个带有 3 个顶级目的地的笔记应用程序。顶级目的地之一 (NotesList) 显示用户创建的笔记列表。 NotesList 有一个
我有这个带有导航组件的选项卡式 UI 和处理选项卡的 BottomNavigationView。我的用例涉及这些选项卡 fragment 之一,以拥有自己的 BottomNavigationView。
我的布局在底部有一个导航栏,主要内容在 NavHostFragment 内。现在 NavHostFragment 的底部隐藏在导航栏后面。我怎样才能解决这个问题? 这是 Activity 的主要布局:
我有一个 fragment ,我在其中定义了一个 NavHostFragment,如下所示: 当试图在 fragment 中调用 findNavController 方法时,它抛出了一个非法状态异常
我个人无法发现这个问题,但是 Firebase Crashlytics 上有很多这样的错误 我用 StackOverflow 尝试了所有答案,但没有任何帮助 我的 R.layout.activity_
我想在一个 Activity 中有三个 navHostFragments,它们都占用相同的空间,但每个都有不同的导航图。然后使用 fragment 管理器和底部导航栏,我想在需要时显示每一个(并隐藏其
我想尝试新的导航库。关注后this guideline我在运行时遇到错误: Caused by: android.view.InflateException: Binary XML file line
我试图在新的导航组件中找到一种方法,但我没有找到任何相关信息。 我的当前目的地是: mainHostFragment.findNavController().currentDestination 但我
我们有一个旧版应用程序,我们开始迁移到 Jetpack Compose。 该应用程序只有一个 Activity ,使用带有导航 XML 图的导航组件在 fragment 之间导航。 我们正在遵循这种方
预计 使用类似于示例应用的导航 UI 的 BottomNavigationView 和 FragmentContainerView 创建底部应用栏导航 NavigationAdavancedSampl
我的目标是通过复杂的导航架构(我想)以最佳方式理解和使用导航组件。 为了创建全局上下文,我使用了一个包含 5 个项目的主 BottomNavigationBar。对于fragment associat
我想知道 Navigation.findNavController(it) 和 NavHostFragment.findNavController(this) 之间的区别。基本上两者都在做同样的事情,
我有一个 Activity ,其中包含一个带有给定导航图(和经典子 fragment )的 NavHostFragment。我的子 fragment 可能会触发事件(通过接口(interface)声明
我是一名优秀的程序员,十分优秀!