目录
1.前提准备
2.新建项目
1.前提准备
下载最新版本的AndroidStudio,我目前的版本如下:
注意要将kotlin环境配置好
2.新建项目
新建项目中空Activity就是新建的Compose项目
然后就会得到一个Compose界面的应用
为何要学Compose可以看郭霖的文章:
原创:写给初学者的Jetpack Compose教程,为什么要学习Compose?
这里自动生成的代码涉及到了一些Compose的基础知识,我们得把这些基础知识了解清楚了,才能开始后续Compose的学习。
首先看一下onCreate函数中的代码,这里调用了一个setContent函数。注意这个名字是非常讲究的,因为每个Android开发者都会对另外一个函数的名字非常熟悉:setContentView。所以,过去我们使用View来编写界面的时候,都会调用setContentView函数来设置界面。而用了Compose之后,由于不再使用View了,所以就改用这个新的setContent函数来设置界面了。
setContent函数会提供一个Composable作用域,所以在它的闭包中我们就可以随意地调用Composable函数了。
那么什么又是Composable函数呢?简单来说,就是一个函数的上方,使用了@Composable进行声明,那么它就是一个Composable函数。
观察上述代码,你会发现Greeting函数就是一个Composable函数。
注意,Composable函数只能在Composable作用域中才能调用,所以如果你尝试在setContent函数的闭包外面调用Greeting函数,你会发现编译无法通过。
另外,所有的Composable函数还有一个约定俗成的习惯,就是函数的命名首字母需要大写。这一点和Java的函数命名习惯很不相同,因为Java函数命名通常都是使用首字母小写的驼峰模式。
但也正是因为如此,Composable函数名才特意要求首字母需要大写,这样我们就能够更加直观地通过函数名称来快速地判断一个函数是不是Composable函数,不然的话还需要找到这个函数的定义位置,看看它有没有@Composable注解才行。
那么根据这个规则,我们就可以得知,setContent函数中嵌套的ComposeTestTheme和Surface这两个函数都是Composable函数。
其中,ComposeTestTheme函数是Android Studio自动为我们创建的,主要用于对项目的主题进行设置和定制,我们可能会在后面的文章讨论这个话题。
Surface函数是Material库中提供的一个通用函数,它的主要作用是为了让应用程序可以更好地适配Material Design,例如控制阴影高度、控制内容颜色、裁剪形状等等。由于目前我们还是初学者,暂时没有必要对这个Surface函数了解太多,这里就不做过多解释了。
除此之外,你会发现Android Studio还为我们生成了一个GreetingPreview函数。它也是一个Composable函数,但是它比普通的Composable函数多了一个@Preview注解,这个注解表示这个函数是用来快速预览UI样式的。
也就是说,写在GreetingPreview函数中的UI,可以在不运行程序到手机上的情况下就实现快速预览。操作方法是,在Android Studio的主编辑界面点击右上角的Split选项,然后编译一下项目即可
个人建议是使用真机看效果,这个预览还是不怎么好用的,如下是我的真机效果: