Jetpack Compose的Layouts
一:简介
您将学习如何使用Compose的最高层次的UI抽象,Material Design,以及低级的可组合工具,如Layout,它允许您测量并在屏幕上放置元素。
二:Modifier
1:设置文本的透明度
CompositionLocalProvider(LocalContentAlpha provides ContentAlpha.medium) {Text("3 minutes ago", style = MaterialTheme.typography.body2)}
2:指明Surface等控件的大小
modifier = Modifier.size(50.dp)
3:Modifiers 和 XML attribute的区别
Modifiers和XML attribute类似,但是Modifiers具有作用域的类型安全检查,一些无效的modifiers不能在一些layouts上使用
4:设置一个modifier在形参的一号位
If you're creating your own composable, consider having a modifier as a parameter, default it to Modifier
(i.e. empty modifier that doesn't do anything) and apply it to the root composable of your function. In this case:
@Composable
fun PhotographerCard(modifier: Modifier = Modifier) {Row(modifier) { ... }
}
Note: By convention, the modifier is specified as the first optional parameter of a function. This enables you to specify a modifier on a composable without having to name all parameters.
5:Modifier的顺序有影响
看一个例子:
Surface (color = if (color_state.value == 1) Color.Green else Color.Blue){Column(modifier = Modifier.padding(5.dp).clickable { color_state.value = -color_state.value }.align(Alignment.CenterVertically)) {...}}}
column先在周围创建了空隙padding,再创建了点击事件clickable,这个时候clickable在padding之间是无效的。但是,clickable放在padding前面就可以把padding的范围也包括进去。
6:背景的圆角
想要把背景设置成圆角,看来有两种方案:
1:
Row(modifier = Modifier.padding(8.dp).clip(RoundedCornerShape(4.dp)).background(MaterialTheme.colors.surface).padding(16.dp)) {
...
}2:
Row(modifier = Modifier.padding(8.dp).background(MaterialTheme.colors.surface, Shapes.medium).padding(16.dp)) {
第一种先裁剪,在设置背景;第二种设置一个裁剪后的背景。
Jetpack Compose的Layouts相关推荐
- Jetpack Compose 深入探索系列四: Compose UI
通过 Compose runtime 集成 UI Compose UI 是一个 Kotlin 多平台框架.它提供了通过可组合函数发出 UI 的构建块和机制.除此之外,这个库还包括 Android 和 ...
- Jetpack Compose中的Accompanist
accompanist是Jetpack Compose官方提供的一个辅助工具库,以提供那些在Jetpack Compose sdk中目前还没有的功能API. 权限 依赖配置: repositories ...
- Jetpack Compose学习笔记
在前不久的 Android Dev Summit '19 上,Jetpack Compose 终于发布了一个可直接获得的预览版.现在的版本还是 0.1.0-dev02,处于非常早期的版本,官方也再三强 ...
- 随输入动态改变ui_深入详解 Jetpack Compose | 优化 UI 构建
人们对于 UI 开发的预期已经不同往昔.现如今,为了满足用户的需求,我们构建的应用必须包含完善的用户界面,其中必然包括动画 (animation) 和动效 (motion),这些诉求在 UI 工具包创 ...
- 移动开发 Jetpack Compose 组件布局
Jetpack Compose 是用于构建原生 Android 界面的新工具包.它可简化并加快 Android 上的界面开发,使用更少的代码.强大的工具和直观的 Kotlin API,快速让应用生动而 ...
- 在 Jetpack Compose 中安全地使用数据流
/ 今日科技快讯 / 11月17日下午,暴雪中国官方微博发布公告称,各位暴雪游戏的国服玩家,我们很遗憾地通知大家,随着我们与网之易公司现有授权协议的到期,自2023年1月24日0点起,所有&l ...
- Jetpack Compose 自定义绘制——高仿Keep周运动数据页面
废话之前先上图吧,如果不是有人告诉,你可以一眼看出哪个是真哪个是假吗? 仿制整个页面(仅仅页面)大概花了我两个小时,不过仅仅是静态的.不可点击的.图有形似而无功能. 自定义绘制 Jetpack Com ...
- 使用Jetpack Compose竟能做出如此漂亮的倒计时APP
Compose开发者挑战赛二周目 迎合Jetpack Compose beta版的发布,Google官方发起了Compose开发者挑战赛活动,目前已经入二周目 android-dev-challeng ...
- Jetpack Compose - Switch
Jetpack Compose - Switch 1.属性一览 2.使用示例 3.版本更新 4.未解决问题 Compose系列文章,请点原文阅读.原文:是时候学习Compose了! 1.属性一览 [目 ...
最新文章
- C#方法带不确定个数参数
- linux shell 脚本 延时,linux下定时任务和延迟任务
- (转)IOS学习笔记-2015-03-29 int、long、long long取值范围
- 一篇文章弄懂Java多线程基础和Java内存模型
- Nexus-vPC与FHRP
- hdu 4006 The kth great number 线段树/优先队列/set
- 两大硬件设计被OCP官方接受,腾讯成国内互联网公司第一家
- Asp.Net高级知识回顾_HttpModule及应用程序生命周期_1
- 检验多重共线性matlab_异方差太难?检验通不过?横截面分析难题的十大暴击!...
- zabbix 5.0所有依赖包_Zabbix“专家坐诊”第82期问答汇总
- 图像分割(二):高斯混合模型(GMM)方法
- C++面试高频考点整理--基础
- java代码post接口请求 用 hutool工具类
- 安装autocad2006出错
- OpenSIPS实战(一):OpenSIPS使用简介
- 云计算对21世纪IT人才的挑战
- Unity3D教程:iTween插件的介绍和用法
- Python 调用谷歌翻译(2021年9月测试可用)
- asio ssl 笔记
- CryEngine技术讲解