目录

  • 分离式组件
  • 实例展示与 modifier 分析
    • 完整结构
    • 代码分析
  • END

分离式组件

我们可以把组件移动到另外一个 kt 文件中书写,并在主文件进行引用即可,有利于解耦;

实例展示与 modifier 分析

下面展示一个简单的组件案例,并对其中的常见代码做出重点标注;

下图为运行后的完整结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5pJPdUVl-1664204266608)(…/imgs/compose/bas-component-modifier/bcm1.png)]

@Composable
fun PhotoGraphCard(modifier: Modifier = Modifier) {Row(modifier = Modifier.clip(RoundedCornerShape(4.dp)).background(MaterialTheme.colors.surface).clickable(onClick = {}).padding(16.dp)) {Surface(modifier = Modifier.size(50.dp),shape = CircleShape,color = MaterialTheme.colors.onSurface.copy(alpha = .2f)) {Image(painter = painterResource(id = R.drawable.ic_launcher_background),contentDescription = "null")}Column(modifier = Modifier.padding(start = 8.dp).align(Alignment.CenterVertically)) {Text(text = "lily", fontWeight = FontWeight.Bold)Text(text = "3 minutes ago", style = MaterialTheme.typography.body2)}}
}

完整结构

最外层套一个 Row,设置水平布局,左边为图像,右边为内容;

Surface 主要用来承载内部的 Image 组件;

Column 垂直布局,存放文本内容,一上一下两个文本;

代码分析

clip 设置裁剪;

RoundedCornerShape 裁剪圆角,类似于 CSS 的 border-radius;

background 背景设置;

MaterialTheme.colors.surface 获取主题色;

clickable 设置点击事件(添加这个修饰后,此 Row 被点击后即出现水波纹效果!)

padding 设置内边距;

注意:修饰符之间是有先后顺序的!当你把 clickable 放在 padding 后面的话,水波纹效果将不会出现在 padding 里面

Row(modifier = Modifier.clip(RoundedCornerShape(4.dp)).background(MaterialTheme.colors.surface).clickable(onClick = {}).padding(16.dp)
) {...
}

size 设置当前整个组件的大小;

shape 直截了当设置外形轮廓;

color 配置颜色;

copy(alpha = .2f) 表示将获取到的变量中的属性 alpha 更改为 0.2f,其余的属性值不变;

Surface(modifier = Modifier.size(50.dp),shape = CircleShape,color = MaterialTheme.colors.onSurface.copy(alpha = .2f)
) {...
}

Alignment.CenterVertically 垂直居中,当然还有水平居中;

padding(start = 8.dp) 左 padding 为 8 个 dp;

注意:两个文本中第二个文本使用了浅灰色,是根据官方推荐的 ”组件层次可以用颜色深浅表达”

Column(modifier = Modifier.padding(start = 8.dp).align(Alignment.CenterVertically)
) {Text(text = "lily", fontWeight = FontWeight.Bold)Text(text = "3 minutes ago", style = MaterialTheme.typography.body2)
}

END

很水,但是内容很水

JetpackCompose Modifier常用属性介绍(1)相关推荐

  1. CSS 选择器及常用属性介绍

    文章目录 一.CSS语法 1.1 注释 1.2 CSS 引入方式 二.CSS 选择器-查找标签 2.1 基本选择器 标签选择器 ID选择器 类选择器 通用选择器 2.2 组合选择器 后代选择器 儿子选 ...

  2. div style常用属性介绍及使用示例

    在div+css布局中经常被用到的就是div了,几乎所有的css属性都可以用到它的身上,本文整理了一些在页面布局中常用的属性的使用示例,有想学习css布局的朋友可以参考下 一.常用属性: 1.Heig ...

  3. 表格的常用属性介绍:

    1:border:表格的边框 2:align:表格水平位置,也可以用于tr和td中,表示的是单元格内容的水平位置 3:bordercolor:边框颜色 4:width:表格宽度,可以使用比例,也可以使 ...

  4. WPF绑定功能常用属性介绍

    1.Mode 绑定中数据流的方向(enum BindingMode) 目标属性指的是控件的属性 (1)TwoWay 更改源属性或目标属性时,会自动更新另一方.适用于可编辑窗体 例:TextBox (2 ...

  5. 常见的html行级元素及语义,HTML入门之——结构,常用标签及其属性,再加上语义化...

    一,HTML简介(来源HTML百度百科) HTML:超文本标记语言,是指能够包含链接,图片,程序,视频等非文字元素的页面 二,HTML,XML,XHTML之间有什么区别 HTML:超文本标记语言,语法 ...

  6. android使用桢布局,Android 常用布局

    Android的布局有: LinearLayout线性布局 RelativeLayout            相对布局 FrameLayout单桢布局 TableLayout表格布局 GridLay ...

  7. JetPack Compose之Modifier修饰符

    前言 在Compose中,每一个组件都是带有@Compose注解的函数,被称为Composable.Compose已经预置了很多的Compose UI组件,这些组件都是基于Material Desig ...

  8. UIPATH 常用操作

    控件 清空excel sheet 页 Sub clearEntireSheet() Sheets("Sheet名字").Cells.Clear End Sub 字符串换行符分割成l ...

  9. HTML5新增的9种常用的页面标签

    在HTML5中,新增了9种常用的页面标签,详细介绍如下: 1.figure标签 figure标签是HTML5中新增的标签之一,表示一段独立的流内容(文本.图像). 在使用figure标签时,标签的内容 ...

  10. Android自定义键盘的简单实现

    概述 突然发现好多软件都使用了自己定义的软键盘.自己就想着先把这块坑先踩踩把,以后掉坑的时候不至于帅的太惨.言归正传,对于自定义软键盘.需要用到系统提供的两个类:Keyboard和KeyboardVi ...

最新文章

  1. 怎么点亮段码屏_手机被人偷了,支付宝里的钱被转走了,遇到这种情况该怎么办?...
  2. 美甲帮:玩转指甲上的大数据平台
  3. draw.io二次开发(1)三种运行模式的区别
  4. Android——监听事件总结
  5. 前端学习(1840):前端面试题之mpvue和小程序
  6. 【C语言进阶深度学习记录】二十七 C语言中字符串的相等比较
  7. 【数字逻辑设计】卡诺图
  8. 12306一直提示网络有问题_春运攻略:西安网友买票遇到的这些问题,这里有答案...
  9. Android的NDK开发(2)————利用Android NDK编写一个简单的HelloWorld
  10. Linux服务器基本安全加固
  11. 【STM32F429开发板用户手册】第2章 STM32F429的开发环境搭建
  12. 51单片机八段数码c语言程序,51单片机做的音乐盒,带八段数码管显示程序+Proteus仿真...
  13. 思迅软锁安装配置说明
  14. CDN,P2P,PCDN的区别?
  15. 西南大学统考英语计算机有答案吗,西南大学1806课程[0002]《英语》机考A卷答案参考...
  16. java 使用subList痛彻心扉的领悟
  17. 魔术师的猜牌术(1)
  18. 光机相互作用的哈密顿量
  19. 超微服务器修改raid卡,超微主板怎么创建RAID磁盘阵列 AMD主板RAID设置介绍
  20. 计算机的主机有哪些东西,代替你电脑的所有接口,世界最快的雷电3了解一下...

热门文章

  1. JAVA如何在LINUX里编程,如何使用加多宝(jdb)在linux下调试Java程序
  2. 第十一章 枚举与泛型
  3. Spring - 事件监听机制 源码解析
  4. NAIPC2016 I. Tourists【LCA】
  5. 网络图片地址直接转Base64
  6. arm版红帽企业linux,红帽:ARM架构下的Linux不是玩笑
  7. 台式机设成仅计算机,将台式机更改为笔记本,将笔记本电脑更改为台式机
  8. html在表格输入文字不显示,Word表格中有部分格子内无法输入文字是怎么回事?...
  9. 深夜更新博客的美女们[组图]
  10. lesson2分频计数器设计