Jetpack Compose: Hello Android

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 的教程和深入探索!

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ //练习 10.31 修改前一题的程序,使其只打印不重复的元素。你的程序应使用unique_copy(参见10.4.1节,第359页)。

C Primer(第5版) 练习 10.31 练习 10.31 修改前一题的程序,使其只打印不重复的元素。你的程序应使用unique_copy(参见10.4.1节,第359页)。 环境:Linux Ubuntu(云服务器&#xff09…

基于ERNIR3.0的文本多分类

还在用BERT做文本分类?分享一套基于预训练模型ERNIR3.0的文本多分类全流程实例【文本分类】_ernir 文本分类-CSDN博客 /usr/bin/python3 -m pip install --upgrade pip python3-c"import platform;print(platform.architecture()[0]);print(platform.machine…

深度学习500问——Chapter02:机器学习基础(3)

文章目录 2.10 主成分分析(PCA) 2.10.1 主成分分析(PCA)思想总结 2.10.2 图解PCA核心思想 2.10.3 PCA算法推理 2.10.4 PCA算法流程总结 2.10.5 PCA算法主要优缺点 2.10.6 降维的必要性及目的 2.10.7 KPCA与PCA的区别 2.11 模型评估…

什么是跨站脚本攻击(XSS)

厦门微思网络​​​​​​https://www.xmws.cn 华为认证\华为HCIA-Datacom\华为HCIP-Datacom\华为HCIE-Datacom Linux\RHCE\RHCE 9.0\RHCA\ Oracle OCP\CKA\K8S\ CISP\CISSP\PMP\ ​ 跨站脚本攻击(Cross-site Scripting,通常称为XSS)&#xf…

MCU设计--M3内核详解(2)

内核架构 FETCH取指单元DEC指令译码EXEC执行LSU内存取数ETM_INTF调试接口STATUS状态上报 内核-寄存器 不同指令集支持不同的寄存器分配。R13用于主堆栈指针(MSP),进程堆栈指针(PSP)R13 连接寄存器存储子程序指针,提高速度R15 程序计数器PC 剩下的一些 …

Gemma模型一些细节讲解

Gemma模型报告中提到的几个点进行代码细节解读一下: (1)Embedding层共享参数 (2)输入输出层均进行RMSNorm Embedding层共享参数 共享embedding的权重给最后的llm_head层。是词嵌入层的共享,与旋转位置编码…

羊大师揭秘羊奶探秘,不止于营养的美味饮品

羊大师揭秘羊奶探秘,不止于营养的美味饮品 羊奶作为一种古老而珍贵的乳制品,不仅具有丰富的营养价值,还拥有独特的口感和风味,使其成为一种不止于营养的美味饮品。以下是对羊奶的深入探秘: 独特的风味:羊…

【JavaEE进阶】 Linux搭建Java部署环境

文章目录 🍃前言🌴Linux权限🚩用户操作🚩三种角色🚩文件类型和访问权限🎈文件类型🎈基本权限 🚩修改文件权限 🎍搭建Java部署环境🚩apt🎈apt常用命…

【C++基础】STL容器面试题分享||上篇

🌈欢迎来到C基础专栏 🙋🏾‍♀️作者介绍:前PLA队员 目前是一名普通本科大三的软件工程专业学生 🌏IP坐标:湖北武汉 🍉 目前技术栈:C/C STL 1.请说说 STL 的基本组成部分2.详细的说&…

08 OpenCV 腐蚀和膨胀

文章目录 作用算子代码 作用 膨胀与腐蚀是数学形态学在图像处理中最基础的操作。其卷积操作非常简单,对于图像的每个像素,取其一定的邻域,计算最大值/最小值作为新图像对应像素位置的像素值。其中,取最大值就是膨胀,取最小值就是腐…

Pytorch学习 day01(Jupyter安装、常用函数、三种编辑器的对比)

Jupyter 安装过程中遇到的问题: Anaconda的base环境会自动安装Jupyter,但是如果我们要在其他环境中安装Jupyter,就需要注意,该环境的python版本不能高于3.11,且用以下代码安装: conda install nb_conda_…

【深度学习】脑部MRI图像分割

案例4:脑部MRI图像分割 相关知识点:语义分割、医学图像处理(skimage, medpy)、可视化(matplotlib) 1 任务目标 1.1 任务简介 本次案例将使用深度学习技术来完成脑部MRI(磁共振)图像分割任务&#xff0c…

java spring 03 启动细节

启动类ClassPathXmlApplicationContext public ClassPathXmlApplicationContext(String[] configLocations, boolean refresh, Nullable ApplicationContext parent)throws BeansException {super(parent);setConfigLocations(configLocations);if (refresh) {refresh();}}其中…

扬帆启航!携手飞桨get开源贡献新技能!

亲爱的开发者朋友们,“飞桨启航计划第二期”正式启动啦!这是一个专为开源爱好者设计的远程项目,旨在通过集训营的形式,鼓励大家积极参与到开源项目中来,提升代码实践能力,并与飞桨开源社区共同成长&#xf…

Sublime Text4代码配色自定义方案

文章目录 前言Settings设置效果图 前言 关于Sublime Text对于我的使用体验,只能说内置的代码主题真的都太low了,一点都不好看。所以接下来我分享一下我自定义代码配色。当然,大家也可以通过我给的中文翻译注释来自定义自己喜欢的颜色。废话不…

【数字经济】数字化转型与制造企业绿色创新质量(2000-2022)

数据来源:企业年报等时间跨度:2000-2022年数据范围:A股上市制造企业数据指标: 股票代码 省份代码 总资产 年份 城市代码 企业年龄 股票简称 上市状态 资产负债率 行业名称 绿色专利申请 企业成长 …

面试经典150题——逆波兰表达式求值

Man cannot live like a beast, he should pursue knowledge and virtue. -- Dante 1. 题目描述 2. 题目分析与解析 2.1 思路一 这个波兰式我记得在之前上编译原理的时候学过,是对输入的代码进行解析用的。可能有一部分读者对于波兰表达式并不太熟悉,…

怎样获得CNVD原创漏洞证书

1. 前言 因为工作变动,我最近把这一年多的工作挖漏洞的一些工作成果提交到了CNVD漏洞平台(https://www.cnvd.org.cn/),获得了多张CNVD原创漏洞证书。本篇博客讲下怎么获得CNVD原创漏洞证书,以供大家参考。 2. CNVD原创…

Python常用验证码标注和识别(需求分析和实现思路)

目录 一、需求分析 图像验证码识别: 文本验证码识别: 二、实现思路 三、案例与代码 四、总结与展望 在当今的数字时代,验证码(CAPTCHA)作为一种安全机制,广泛应用于网站和应用程序中,以防…

Anthropic官宣Claude3:建立大模型 推理、数学、编码和视觉等方面 新基准

文章目录 1. product2. Main2.1 核心能力2.2 打榜表现 3. My thoughtsReference Claude 3 在推理、数学、编码、多语言理解和视觉方面,全面超越GPT-4在内的所有大模型,重新树立大模型基准。 1. product https://claude.ai/ 国内暂不能使用,…