Jetpack Compose: Hello Android

news2024/11/18 1:27:53

Jetpack Compose 是一个现代化的工具包,用于使用声明式方法构建原生 Android UI。在本博文中,我们将深入了解一个基本的 “Hello Android” 示例,以帮助您开始使用 Jetpack Compose。我们将探讨所提供代码片段中使用的函数和注解。

入门

在深入代码之前,请确保您已经准备好使用 Jetpack Compose 进行工作。您应该安装了 Android Studio,并使用最新版本的 Android Gradle 插件。创建项目。
在这里插入图片描述

代码解析

让我们逐步查看所提供的代码:

MainActivity

package com.minos

import android.os.Bundle
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Devices
import androidx.compose.ui.tooling.preview.Preview
import com.minos.ui.theme.HelloComposeTheme

class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            HelloComposeTheme {
                Surface(
                    modifier = Modifier.fillMaxSize(),
                    color = MaterialTheme.colorScheme.background
                ) {
                    Greeting("Android")
                }
            }
        }
    }
}
  • MainActivity 是一个标准的 Android 活动类。
  • onCreate 方法中,我们使用 setContent 设置内容视图,其中包含一个可组合函数 HelloComposeTheme
  • HelloComposeTheme 中,我们有一个 Surface 可组合,它使用 Material 主题中定义的背景颜色填充整个可用空间(Modifier.fillMaxSize())。
  • Surface 中,我们调用 Greeting 可组合,传递 “Android” 作为 name 参数。

Greeting 可组合

@Composable
fun Greeting(name: String, modifier: Modifier = Modifier) {
    Text(
        text = "Hello $name!",
        modifier = modifier
    )
}
  • Greeting 是一个可组合函数,它接受一个 String 类型的 name 参数和一个可选的 Modifier 类型的 modifier 参数。
  • Greeting 内部,我们使用 Text 可组合来显示问候消息 “Hello $name!”。

GreetingPreview

@Preview(showBackground = true, backgroundColor = 0xFF00FF00, showSystemUi = true, device = Devices.PIXEL)
@Composable
fun GreetingPreview() {
    HelloComposeTheme {
        Greeting("Android")
    }
}
  • GreetingPreview 是一个带有 @Preview 注解的可组合函数。它允许我们在 Android Studio 中预览 UI 布局。
  • @Preview 注解的参数:
    • showBackground:指示是否显示背景。
    • backgroundColor:设置背景颜色。
    • showSystemUi:指示是否显示系统 UI。
    • device:指定用于预览的设备。
  • GreetingPreview 中,我们将 Greeting 可组合包装在 HelloComposeTheme 中,以提供适当的主题。

结论

本博文通过探讨一个简单的 “Hello Android” 示例介绍了 Jetpack Compose。我们讨论了所提供代码片段中使用的关键函数和注解。请继续关注更多关于 Jetpack Compose 的教程和深入探索!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1492465.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Leetcode3066. 超过阈值的最少操作数 II

Every day a Leetcode 题目来源:3066. 超过阈值的最少操作数 II 解法1:模拟 两个 int 类型的数 x 和 y 做操作:min(x, y) * 2 max(x, y),得到的结果会超出 int 范围。 代码: /** lc appleetcode.cn id3066 langc…

磁性机器人在医学领域取得进展

磁性医疗机器人利用磁场梯度来控制设备的运动,并最终以高精度进入体内的目标组织。这些磁性机器人可以采用导管和微型或纳米机器人的形式,并由磁导航系统操纵。磁性机器人最近取得了一些进展,为临床诊断和治疗用途开辟了新的可能性。在本期的…

基础设施即代码 (IaC)简介

基础设施即代码 (IaC) 市场预计到 2027 年将达到 23 亿美元,复合年增长率为 24.0%。这凸显了 IaC 对于各种规模的组织越来越不可或缺。除了成为一种趋势之外,采用 IaC 也是在当今充满活力和竞争的环境中蓬勃发展的战略必要条件。在这份综合指南中&#x…

基于双种群的容量式电动汽车路由问题的协同进化算法(2023)

A Dual-Population Based Co-evolutionary Algorithm for Capacitated Electric Vehicle Routing Problems 摘要、: 有容量的电动汽车路由问题是一个具有挑战性的非确定性多项式硬问题(NP-hard),由两个相互依赖的子问题组成&…

基于GitBucket的Hook构建ES检索PDF等文档全栈方案

背景 之前已简单使用ES及Kibana和在线转Base64工具实现了检索文档的demo,预期建设方案是使用触发器类型从公共的文档源拉取最新的文件,然后调用Java将文件转Base64后入ES建索引,再提供封装接口给前端做查询之用。 由于全部内容过长&#xff…

html5新增标签+css3新增标签

新增标签 一.html5新增标签1.语义化标签2.多媒体标签(1)视频video(2)音频audio(3).总结 3.input属性4.表单属性 二.css3新增选择器1.新增选择器(1)属性选择器(2&#xff…

堆以及堆的实现

文章目录 堆的概念堆的实现HeapPushHeapPop HeapTop HeapSize HeapEmpty堆的应用 堆的概念 堆是一颗完全二叉树每个结点的值都小于子结点的值,这颗二叉树为小根堆每个结点的值都大于子结点的值,这颗二叉树为大根堆堆的定义如下:n个元素的序列…

蓝桥杯练习题——双指针

1.牛的学术圈 I 思路 1.从大到小排序,把数组分成三段,[1, j] (j, j2] (j2, n],j 以 i 为界限,j2 以 i - 1 为界限 2.第一部分引用数已经够了,第三部分引用数差太多,判断第一部分 min(L, 第二部分)是否有 …

【Lattice FPGA 开发】IP核的调用

本文介绍Diamond开发软件进行IP核调用与对应官方文档查找方法。 文章目录 1. IP核的调用1.1 IPexpress调用IP核1.2 Clarity Designer调用IP核 2. IP核相关文档查找2.1 方法一2.2 方法二2.3 方法三 3 问题 1. IP核的调用 Diamond软件中,根据所选目标FPGA器件型号的…

持续更新 | 与您分享 Flutter 2024 年路线图

作者 / Michael Thomsen Flutter 是一个拥有繁荣社区的开源项目,我们致力于确保我们的计划公开透明,并将毫无隐瞒地分享从问题到设计规范的所有内容。我们了解到许多开发者对 Flutter 的功能路线图很感兴趣。我们往往会在一年中不断更改并调整这些计划&a…

【项目】Boost 搜索引擎

文章目录 1.背景2.宏观原理3.相关技术与开发环境4. 实现原理1.下载2.加载与解析文件2.1获取指定目录下的所有网页文件2.2. 获取网页文件中的关键信息2.3. 对读取文件进行保存 3.索引3.1正排与倒排3.2获取正排和倒排索引3.3建立索引3.3.1正排索引3.3.2倒排索引 4.搜索4.1 初始化…

ArmSoM Rockchip系列产品 通用教程 之 UART 使用

1. UART 简介​ Rockchip UART (Universal Asynchronous Receiver/Transmitter) 基于16550A串口标准,完整模块支持以下功能: 支持5、6、7、8 bits数据位。支持1、1.5、2 bits停止位。支持奇校验和偶校验,不支持mark校验和space校验。支持接…

Kafka | SpringBoot集成Kafka

SpringBoot集成Kafka 一、前言二、项目1. pom2. application.properties4. 消息生产者-测试5. 消息消费者 三、启动测试四、有总结的不对的地方/或者问题 请指正, 我在努力中 一、前言 该文章中主要对SpringBoot 集成Kafka 主要是 application.properties 与 pom坐标就算集成完…

flutterui框架,android面试宝典铁道出版社

在很多程序员看来,数据结构,算法这一类的东西感觉没用,在实践中都不常用,所以都会很忽视这类内容,但是在很多公司看来,尤其是大公司看来数据结构和算法这种东西确实最有用,而且经常在笔试和面试…

Blender和3ds Max哪个会是行业未来?

Blender和3ds Max都是很强大的三维建模和渲染软件,各有各的好处。选择哪个软件更好,要看你的需求、预算、技术水平以及行业趋势等因素。 Blender最大的优点是免费且开源,这对预算有限的个人和小团队来说很有吸引力。它有很多建模工具和功能&…

如何快速分析OB集群日志,敏捷诊断工具obdiag分析能力实践——《OceanBase诊断系列》之四

1. 前言 obdiag是OceanBase的敏捷诊断工具。1.2版本中,obdiag支持快速收集诊断信息,但仅有收集能力是不够的,还需要有分析能力。因此在obdiag的1.3.0版本中,我们加入了OB集群的日志分析功能。用户可以一键进行集群的OB日志的分析…

第九篇:– 过程发现(Process Discovery)是如何赋能数字化市场营销全过程?- 我为什么要翻译介绍美国人工智能科技巨头IAB公司

IAB平台,使命和功能 IAB成立于1996年,总部位于纽约市。 作为美国的人工智能科技巨头社会媒体和营销专业平台公司,互动广告局(IAB- the Interactive Advertising Bureau)自1996年成立以来,先后为700多家媒体…

Docker发布镜像(DockerHub,阿里云)

目录 1、发布到DockerHub上 2、发布到阿里云镜像服务上 小结 1、发布到DockerHub上 1.地址https://hub.docker.com/注册自己的账号 2.确定这个账号可以登录 3.在服务器上提交自己的镜像 [rootwq test]# docker login --helpUsage: docker login [OPTIONS] [SERVER]Log in…

c# 调用ip2region组件 根据ip地址进行定位归属地运营商

需求描述:当项目中需要将IP转换成对应的归属地以及运营商,那么通过ip2region组件即可完美实现。 p2region本身支持net4.5以上,还有个ip2region.net组件,它要求net6及以上。所以,根据自己项目的需求即可选择其中一种方…

HarmonyOS NEXT应用开发——Navigation开发 页面切换场景范例

简介 在应用开发时,我们常常遇到,需要在应用内多页面跳转场景时中使用Navigation导航组件做统一的页面跳转管理,它提供了一系列属性方法来设置页面的标题栏、工具栏以及菜单栏的各种展示样式。除此之外还拥有动态加载,navPathSta…