前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >安卓软件开发:Jetpack Compose中常见的核心概念总结-3

安卓软件开发:Jetpack Compose中常见的核心概念总结-3

原创
作者头像
Nimyears
修改于 2024-11-06 00:48:19
修改于 2024-11-06 00:48:19
1350
举报

11. 绘制和动画

Canvas - 自定义绘制

代码语言:kotlin
AI代码解释
复制
Canvas(modifier = Modifier.size(100.dp)) {
    drawCircle(
        color = Color.Blue,
        radius = size.minDimension / 2,
        center = center
    )
}
  • Canvas: 用于自定义绘制形状或图形。
  • drawCircle: 在Canvas上绘制一个圆形。

AnimatedContent - 内容动画

代码语言:kotlin
AI代码解释
复制
AnimatedContent(targetState = count) { targetCount ->
    Text("Count: $targetCount")
}
  • AnimatedContent: 组件内容的变化时带有动画效果。

12. 滑动和手势

Scrollable Column - 可滑动列

代码语言:kotlin
AI代码解释
复制
Column(
    modifier = Modifier
        .fillMaxSize()
        .verticalScroll(rememberScrollState())
) {
    repeat(50) {
        Text("Item $it", modifier = Modifier.padding(8.dp))
    }
}
  • verticalScroll: 为列添加垂直滚动功能。

GestureDetector - 手势检测

代码语言:kotlin
AI代码解释
复制
Box(
    modifier = Modifier
        .size(200.dp)
        .background(Color.LightGray)
        .pointerInput(Unit) {
            detectTapGestures(
                onTap = { /* Handle tap */ },
                onDoubleTap = { /* Handle double tap */ }
            )
        }
)
  • detectTapGestures: 检测点击手势,包括单击、双击等。

13. 导航

Navigation - 导航

代码语言:kotlin
AI代码解释
复制
NavHost(navController, startDestination = "home") {
    composable("home") { HomeScreen() }
    composable("details") { DetailScreen() }
}
  • NavHost: 定义导航主机,管理多个页面之间的导航。
  • composable: 定义每个页面对应的Composable。

Navigate to another screen - 导航到另一个屏幕

代码语言:kotlin
AI代码解释
复制
Button(onClick = { navController.navigate("details") }) {
    Text("Go to Details")
}

14. LazyGrid 和自适应布局

LazyVerticalGrid - 垂直网格

代码语言:kotlin
AI代码解释
复制
LazyVerticalGrid(
    cells = GridCells.Fixed(2),
    contentPadding = PaddingValues(8.dp)
) {
    items(20) { index ->
        Box(
            modifier = Modifier
                .padding(8.dp)
                .aspectRatio(1f)
                .background(Color.Gray)
        ) {
            Text("Item $index")
        }
    }
}
  • LazyVerticalGrid: 创建一个支持懒加载的网格布局。
  • GridCells.Fixed: 固定列数的网格。

LazyHorizontalGrid - 水平网格

代码语言:kotlin
AI代码解释
复制
LazyHorizontalGrid(
    rows = GridCells.Fixed(2),
    modifier = Modifier.fillMaxSize()
) {
    items(30) { index ->
        Box(
            modifier = Modifier
                .padding(8.dp)
                .aspectRatio(1f)
                .background(Color.LightBlue)
        ) {
            Text("Item $index")
        }
    }
}
  • LazyHorizontalGrid: 创建一个支持懒加载的水平网格布局。

15. 带有状态的组件

Switch - 开关

代码语言:kotlin
AI代码解释
复制
var isChecked by remember { mutableStateOf(false) }
Switch(
    checked = isChecked,
    onCheckedChange = { isChecked = it }
)
  • Switch: 创建一个带有开关功能的组件。

CheckBox - 复选框

代码语言:kotlin
AI代码解释
复制
var isChecked by remember { mutableStateOf(false) }
Checkbox(
    checked = isChecked,
    onCheckedChange = { isChecked = it }
)
  • Checkbox: 创建一个复选框。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Android 使用CodeBuddy提高开发效率
  随着时代的变化,AI的兴起,作为开发者,完成开发任务在之前我们需要充分的理解需求,寻找相关文档,进行功能的开发,而在今天我们可以用很多开发工具,帮助我们智能编程,快速完成功能开发。
晨曦_LLW
2025/06/02
1310
Android 使用CodeBuddy提高开发效率
安卓软件开发:Jetpack Compose中常见的核心概念总结-8
Nimyears
2024/11/08
1880
安卓软件开发:Jetpack Compose中常见的核心概念总结-7
Nimyears
2024/11/07
1410
安卓软件开发:使用Jetpack Compose和Room开发NimWishApp-上篇
在Demo中,采用了最新的Jetpack ComposeM3技术栈,结合了Room数据库实现数据的持久化存储,提供了一个从UI层到数据层的完整解决方案,展示了从0到1的开发。
Nimyears
2024/10/03
5140
Android Compose 新闻App(五)Room复杂数据、AlertDialog弹窗、页面导航
  在上篇文章中,我们进一步对EpidemicNews的Desc数据进行处理,本文章中,要解决根本问题,那就是把EpidemicNews直接保存到数据库中。本篇文章运行效果图
晨曦_LLW
2022/04/22
1.8K0
Android Compose 新闻App(五)Room复杂数据、AlertDialog弹窗、页面导航
从0上手Jetpack Compose,看这一篇就够了~
2月底的时候,Android 官方发布了Compose的完整课程。了解到许多小伙伴还没开始学习Compose,所以我写了一篇基础文章,让我们一起轻松上手Compose~
黄林晴
2024/01/11
2.2K0
从0上手Jetpack Compose,看这一篇就够了~
Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?
在前一篇笔记中,我们知道了 Compose 布局的一些基本知识,这篇笔记就来详细看看 Compose 布局吧!还有些 Compose 其他的知识,根据官方的实例,我们边看边说。
修之竹
2022/08/19
3.5K0
Jetpack-Compose 学习笔记(二)—— Compose 布局你学会了么?
安卓软件开发:Jetpack Compose中常见的核心概念总结-4
Nimyears
2024/11/04
1660
安卓软件开发:Jetpack Compose中常见的核心概念总结-9
Nimyears
2024/11/11
2000
安卓软件开发:Jetpack Compose 和 Material 3 实现高级登录页面(Kotlin)
在项目的 build.gradle 文件中添加 Compose 和 Material 3 的依赖项:
Nimyears
2024/09/14
1.1K0
安卓软件开发:使用Jetpack Compose和M3的轮播图和列表App-上篇
这个应用中常见的 UI 需求是轮播图、列表和弹窗,使用 Jetpack Compose 和 M3 的组件,可以快速、高效编码现代化的 UI。
Nimyears
2024/10/12
9210
安卓软件开发:Jetpack Compose中常见的核心概念总结-1
Nimyears
2024/10/30
2240
安卓软件开发:Jetpack Compose中常见的核心概念总结-2
Nimyears
2024/10/31
1540
安卓软件开发:学习Jetpack Compose实现Navigation组件App
在日常工作中经常面临复杂 UI 的构建挑战,以前的开发方式依赖繁琐的XML布局和Activity、Fragment之间的频繁切换,代码大量重复且难以维护。Jetpack Compose 的出现让我们看到了新的可能性:声明式UI让UI和业务逻辑的绑定很简洁,让页面导航更顺畅。
Nimyears
2024/09/28
7100
Compose_Modifier 修饰符的常见使用
Modifier 的点语法可以看做是一层一层叠加的效果,每个点语法都是在当前的状态下进行加工,将加工后的结果传递给下一个点语法。
mikimo
2024/07/21
2030
compose--初入compose、资源获取、标准控件与布局
compose正式发布已经一年多了,越来越多的开发人员选择使用它,声明式UI也是未来的一个主流趋势,本人也是一年前学习后,并没有真正的使用,所以本着边学习,边分享的心态,准备写个compose系列的文章 首先compose目前只支持kotlin,基于google对移动端的鸿图,未来应该也不会支持其他语言,和传统安卓的xml布局不同,compose是通过kotlin定义一个一个组件,由于是通过代码定义的组件,每个组件都可以很方便的重用,这点在UI开发时确实便利了不少。至于声明式UI和命令式UI的区别,相信你会在后续实际使用时有很大的感触
aruba
2022/12/06
6.8K0
compose--初入compose、资源获取、标准控件与布局
安卓软件开发:使用Jetpack Compose实现高级NimNavBottomApp
展示 Jetpack Compose 如何简化 UI 的编码,如何使用 Material 3 提供的组件实现现代化的 Android 应用设计。初级开发可以看怎么通过实现跳转底部导航栏对应tiem对应的内容,也有详细介绍了中高级开发者提供了实用技巧,比如如何处理通知徽章(Badges)和导航状态的管理。这个Demo,我实现了一个常见的底部导航栏App,包括多个页面切换、选中状态的高亮显示、徽章通知的显示等功能。
Nimyears
2024/10/07
4930
安卓软件开发:基于Jetpack Compose实现Redux架构
• 整个应用只有一个Store。Store是一个数据仓库,保存着当前应用的所有状态 (State)。
Nimyears
2025/02/02
2451
Jetpack Compose之 在Compose中使用Navigation导航
大约在一年半前,我发布了Compose的第一篇文章 Jetpack Compose开篇 之 HelloWorld,连我自己也没想到,这一年半的时间中我竟再也没有看过Compose..., 如今Compose已经发布了稳定版本,还没学会Compose让我的头发又白了许多~
黄林晴
2022/05/10
2.1K0
Jetpack Compose之 在Compose中使用Navigation导航
compose--修饰符Modifier
上次介绍了compose中大多数的标准组件,此外还有两个重要的组件:列表LazyColumn和LazyRow,以及约束布局ConstraintLayout,在使用它们之前,先来认识Modifier
aruba
2022/12/11
2.1K0
compose--修饰符Modifier
推荐阅读
相关推荐
Android 使用CodeBuddy提高开发效率
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档