📌  相关文章
📜  Android中Jetpack Compose的基础知识

📅  最后修改于: 2021-05-09 18:28:40             🧑  作者: Mango

Jetpack Compose是一个现代UI工具包,旨在简化Android中的UI开发。它由反应式编程模型组成,该模型具有Kotlin编程语言的简洁性和易用性。它是完全声明性的,因此您可以通过调用一些将数据转换为UI层次结构的函数来描述UI。当数据更改或更新时,框架会自动调用这些功能并为您更新视图。在本文中,我们将介绍一些基本主题,这些主题在开始使用Jetpack Compose之前会很有帮助。

  • 什么是Jetpack Compose?
  • 有什么好处?
  • 通过使用Jetpack Compose我们可以解决哪些挑战?
  • Jetpack的一些基本功能。

什么是Jetpack Compose?

Jetpack Compose是Google最近推出的一种现代UI工具包,用于构建本机Android UI。它使用更少的代码,Kotlin API和功能强大的工具简化并加速了UI开发。

使用Jetpack Compose有什么好处?

  • 声明性的:完全声明性的,因此您可以通过调用一些预定义的函数来描述UI组件。
  • 兼容:它很容易与Android中存在的现有视图兼容。
  • 提高开发速度:以前,开发人员必须处理XML文件和Kotlin文件。但是在jetpack的帮助下,这变得容易了,开发人员只需要处理Kotlin文件,这就是为什么它将帮助开发人员提高开发速度的原因。
  • 简洁和惯用的Kotlin: Jetpack借助Kotlin带来的好处构建了UI。
  • 易于维护:由于任何应用程序的代码库都存在于单个文件中。变得易于管理和处理应用程序的代码库。
  • 用Kotlin编写:使用jetpack编写的应用程序使用100%的Kotlin编程语言。

使用Jetpack Compose我们可以解决哪些挑战?

  • 在编写我们的代码时,我们会为不同目的创建多个方法。之后,我们根据需要将此方法耦合到我们的主要函数。在Android中,构建任何类型的视图并将数据设置到该特定视图时。首先,我们使用变量初始化该视图,然后将数据添加到该特定视图。将UI元素与视图模型耦合的过程称为Coupling 。当我们的代码有很多耦合时,很难维护此代码。因此,耦合有时会给您一些Null Reference错误。
  • 在使用Java开发应用程序时,我们通常更喜欢使用View Modal概念,在该模型中,我们从Java类内的XML布局文件中找到每个视图,并根据需要将数据添加到该特定视图中。在大多数应用中,我们使用UI元素动态显示,因此有时可能会给您NullRefrence错误。在此方法中,UI元素以XML语言声明,而功能是用Java或Kotlin编写的,并且我们通过findViewbyId()方法将UI元素与Java或Kotlin类链接在一起。
  • 如果我们希望使用相同的语言来编写我们的UI组件并添加功能,则维护我们的代码将变得更加容易。通过使用这种方法,我们代码中的耦合数也将减少。

Jetpack Compose的一些基本功能

  1. 可组合函数:通过在函数名称上使用@Composable批注,可在代码中表示可组合函数。通过此函数,您可以通过描述应用程序的形状和数据依赖性来以编程方式定义应用程序的UI,而不必着重于UI的构建过程。
  2. 预览函数:函数本身的名称告诉我们,该函数用于生成可组合函数的预览。它用于在IDE中显示我们可组合功能的预览,而不是在模拟器或虚拟设备中安装APK。预览函数由@Preview注释。
  3. 列函数:列函数用于以垂直方式堆叠UI元素。此函数将以垂直方式将所有子项直接堆叠在一起,并且它们之间没有间距。它用Column()注释。
  4. 行函数:行函数用于以水平方式堆叠UI元素。此函数将所有子级以水平方式一个接一个地堆叠在一起,并且它们之间没有间距。它用Row()注释。
  5. 堆栈:一种小部件,用于将元素彼此放置在一起。它将相对于其边缘定位其子级。堆栈用于绘制将按照指定顺序重叠的子项。它由Stack()注释。
  6. 固定垫片:用于在两个视图之间提供间距。我们可以指定盒子的高度和宽度。它是一个空框,用于在视图之间提供间距。它用FixedSpacer()注释。
  7. 垂直滚动条:如果应用内的UI组件不适合屏幕高度,则我们必须使用滚动类型的视图。借助垂直滚动器,我们可以为视图提供垂直滚动行为。垂直滚动条内部的内容将被剪切到垂直滚动条的边界。它用VerticalScroller()注释。
  8. 填充:填充函数用于根据特定视图周围的要求提供额外的空白区域。它只是用Padding()注释。
  9. 容器:容器也称为父窗口小部件,它结合了一个孩子的所有常见布局窗口小部件,例如填充,对齐,宽度,高度等等。它用Container()注释。
  10. 居中:一种将孩子放在自己居中的布局。具有有限的传入约束的布局将尽可能大,否则将包装内容。它用Center()注释。
  11. Constrained Box:这是一个将限制其唯一子项的小部件。约束框本身将创建一个布局,该布局将采用与孩子选择的布局相同的大小。它用ConstrainedBox()注释。
  12. Flex Column:这是一个小部件,它将以垂直顺序放置其子项,并根据其子项的权重分配子项的宽度。它用FlexColumn()注释。
  13. Flex Row:这是一个小部件,它将以水平顺序放置其子项,并根据其子项的权重分配子项的宽度。它用FlexRow()注释。
想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处前往由我们的专家精心策划的指南,以使您立即做好行业准备!