通过本文你会了解到怎么在Jetpack Compose里面使用Navigation。你还会了解到在navigate的时候怎么传递基础类型和自定义类型数据。
注意:Jetpack Compose最近已经发布了beta版本。这就意味着API的结构不会有太大的变动了。因此,现在这是学习怎么用Android开发下一代UI工具的时候了。Navigation是android开发的核心内容之一,所以你就好好看看本文吧。
使用Jetpack Compose Beta版本需要使用Android Studio Canary Arctic Fox的版本。
介绍
Jetpack Compose 是可以和Android组件比如Fragment进行交互的。因此如果你如果你已有一个现成的项目想要转到Jetpack Compose,你不需要做任何修稿。
但是如果你想迁移整个应用不再要任何Android组件比如Fragment,或者说你要用Compose创建一个全新的应用,那这篇文章就是为你准备的。
我们将用Navigation这个架构组件去实现页面之间的跳转。如果你还不熟悉Navigation的话,我强烈建议你阅读这篇文章:jitpack-navigation-component
用Compose创建一个有两个页面的应用
与传统的Android开发不同的是,Jetpack Compose没有Fragment,Activity这些约束。用Jetpack Compose可以用任意一个Composable的函数来表示页面的一部分或者是整个页面。如果你是从头开始创建一个项目的话,我建议你只用Composable,充分利用Compose强大的能力。
为了充分理解Compose的Navigation,让我们创建一个包含两个页面的Subscription:SubscriptionsListScreen
和SubscriptionDetailsScreen
。看一下代码:
class Subscription(val name : String, val price : String, val details : String)
@Composable
fun SubscriptionsListScreen(subscriptionslist : List){
LazyColumn(
modifier = Modifier.fillMaxWidth()
){
items(subscriptionslist){subscription->
SubscriptionsListI