一:简介

您将学习如何使用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相关推荐

  1. Jetpack Compose 深入探索系列四: Compose UI

    通过 Compose runtime 集成 UI Compose UI 是一个 Kotlin 多平台框架.它提供了通过可组合函数发出 UI 的构建块和机制.除此之外,这个库还包括 Android 和 ...

  2. Jetpack Compose中的Accompanist

    accompanist是Jetpack Compose官方提供的一个辅助工具库,以提供那些在Jetpack Compose sdk中目前还没有的功能API. 权限 依赖配置: repositories ...

  3. Jetpack Compose学习笔记

    在前不久的 Android Dev Summit '19 上,Jetpack Compose 终于发布了一个可直接获得的预览版.现在的版本还是 0.1.0-dev02,处于非常早期的版本,官方也再三强 ...

  4. 随输入动态改变ui_深入详解 Jetpack Compose | 优化 UI 构建

    人们对于 UI 开发的预期已经不同往昔.现如今,为了满足用户的需求,我们构建的应用必须包含完善的用户界面,其中必然包括动画 (animation) 和动效 (motion),这些诉求在 UI 工具包创 ...

  5. 移动开发 Jetpack Compose 组件布局

    Jetpack Compose 是用于构建原生 Android 界面的新工具包.它可简化并加快 Android 上的界面开发,使用更少的代码.强大的工具和直观的 Kotlin API,快速让应用生动而 ...

  6. 在 Jetpack Compose 中安全地使用数据流

    /   今日科技快讯   / 11月17日下午,暴雪中国官方微博发布公告称,各位暴雪游戏的国服玩家,我们很遗憾地通知大家,随着我们与网之易公司现有授权协议的到期,自2023年1月24日0点起,所有&l ...

  7. Jetpack Compose 自定义绘制——高仿Keep周运动数据页面

    废话之前先上图吧,如果不是有人告诉,你可以一眼看出哪个是真哪个是假吗? 仿制整个页面(仅仅页面)大概花了我两个小时,不过仅仅是静态的.不可点击的.图有形似而无功能. 自定义绘制 Jetpack Com ...

  8. 使用Jetpack Compose竟能做出如此漂亮的倒计时APP

    Compose开发者挑战赛二周目 迎合Jetpack Compose beta版的发布,Google官方发起了Compose开发者挑战赛活动,目前已经入二周目 android-dev-challeng ...

  9. Jetpack Compose - Switch

    Jetpack Compose - Switch 1.属性一览 2.使用示例 3.版本更新 4.未解决问题 Compose系列文章,请点原文阅读.原文:是时候学习Compose了! 1.属性一览 [目 ...

最新文章

  1. C#方法带不确定个数参数
  2. linux shell 脚本 延时,linux下定时任务和延迟任务
  3. (转)IOS学习笔记-2015-03-29 int、long、long long取值范围
  4. 一篇文章弄懂Java多线程基础和Java内存模型
  5. Nexus-vPC与FHRP
  6. hdu 4006 The kth great number 线段树/优先队列/set
  7. 两大硬件设计被OCP官方接受,腾讯成国内互联网公司第一家
  8. Asp.Net高级知识回顾_HttpModule及应用程序生命周期_1
  9. 检验多重共线性matlab_异方差太难?检验通不过?横截面分析难题的十大暴击!...
  10. zabbix 5.0所有依赖包_Zabbix“专家坐诊”第82期问答汇总
  11. 图像分割(二):高斯混合模型(GMM)方法
  12. C++面试高频考点整理--基础
  13. java代码post接口请求 用 hutool工具类
  14. 安装autocad2006出错
  15. OpenSIPS实战(一):OpenSIPS使用简介
  16. 云计算对21世纪IT人才的挑战
  17. Unity3D教程:iTween插件的介绍和用法
  18. Python 调用谷歌翻译(2021年9月测试可用)
  19. asio ssl 笔记
  20. CryEngine技术讲解

热门文章

  1. Hive分区表数据压缩
  2. DIVERSE BEAM SEARCH: DECODING DIVERSE SOLUTIONS FROM NEURAL SEQUENCE MODELS翻译
  3. windows server 2012 IIS + DCOM 启动office 设置
  4. 2015年12月6日
  5. 2011年01月12日
  6. 清华大学计算机学院李立,李立-华中农业大学-信息学院
  7. 使用matlab画可以旋转的太极图
  8. linux 多网口情况,linux socket 服务器多个网口
  9. Linux硬盘速度测试
  10. 软件工程理论与实践——吕云翔 课后第一章习题答案