Jetpack导航组件是否与Jetpack Compose兼容?

4

我一直在查阅文档,但未找到确认信息。有人知道Android Jetpack中的navigationcompose组件是否兼容吗?

我知道Jetpack Compose尚未准备就绪,仅处于开发者预览模式,但我正在使用它并且似乎无法配置我的项目以使两个Jetpack组件同时工作。

非常感谢您提供任何信息。


这个回答解决了你的问题吗?如何在Jetpack Compose中处理导航? - eli
嗨Eli,我正在尝试将Jetpack Compose集成到一个已经使用Jetpack Navigation组件的现有项目中。我认为这个解决方案只是一个绕过Jetpack Navigation组件的变通方法。无论如何,谢谢你。 - ljtomev
1
大家好,如果有人仍然在 Navigation Component 中遇到 Compose 支持方面的问题,请查看我专门为 Compose 编写的库:https://github.com/olshevski/compose-navigation-reimagined - olshevski
2个回答

6

长期来看,Jetpack Compose将在导航组件中得到一流的支持。Google已经在Kotlinlang Slack的#compose频道中多次表示了这一点。

目前(2020年6月30日),导航对于Compose一无所知。我的猜测是,导航DSL最终将支持引用组件(或更新状态的lambda表达式),但这只是个猜测。

如果你想今天同时使用它们,一个选项是继续使用碎片:

  • 由Compose为这些碎片定义UI
  • 由导航在碎片之间进行路由

稍后,当导航直接支持Compose时,您可以"解开"这些碎片,并直接在Compose+Navigation中完成所有操作。

或者,也可以使用第三方提供的非导航路由选项(尽管像Compose一样,它们都是相当新的)。


感谢您的快速和详细回答。您是否有任何关于如何将Jetpack Compose与片段而不是活动一起使用的来源?我会非常感激 :) - ljtomev
3
目前 Fragment 中没有 setContent() 扩展函数,尽管他们已经讨论过将其添加。目前,您可以在 ViewGroup 上使用 setContent(),对于一个 FrameLayout,您的片段将设置为组合的目的地。这也可能会改变(他们正在讨论摆脱 ViewGroup.setContent() 并用专门的 AndroidComposeView 替代),但这就是开发预览中的生活 :-) - CommonsWare
1
这里只是提供参考,ComposeView 的文档可以在以下链接中找到:https://developer.android.com/jetpack/compose/interop - Joaquim Ley

5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接