網(wǎng)站首頁 編程語言 正文
Android開發(fā)Jetpack?Compose元素Modifier特性詳解_Android
作者:互聯(lián)網(wǎng)的小學(xué)生 ? 更新時(shí)間: 2022-11-23 編程語言正文
本文將會(huì)介紹Jetpack Compose中的Modifier。在谷歌官方文檔中它的描述是這么一句話:Modifier元素是一個(gè)有序、不可變的集合,它可以往Jetpack Compose UI元素中添加修飾或者各種行為。例如,背景、填充和單擊事件監(jiān)聽器裝飾或添加行為到文本或按鈕。本文將會(huì)從修飾符的兩個(gè)特性有序和不可變入手來探究修飾符的應(yīng)用,以下是本文目錄:
- 有序性
- 不可變性
有序性
官方對(duì)修飾符定義的這個(gè)特性包含兩個(gè)層面的意思,一是修飾符的使用是鏈?zhǔn)降乃怯邢群笈帕许樞虻模沁@些順序不僅僅是排列上的先后同時(shí)也是屬性對(duì)UI展示效果起作用的先后順序。接下來舉一個(gè)例子來說明修飾符的有序的特性。
Box {
val padding = 16.dp
val onClick = Unit;
Box(
Modifier
.clickable(onClick = { onClick })
.padding(padding)
.align(Alignment.Center)
.size(50.dp, 50.dp)
.background(Color.Green)
)
}
Box {
val padding = 16.dp
val onClick = Unit;
Box(
Modifier
.padding(padding)
.clickable(onClick = { onClick })
.align(Alignment.Center)
.size(50.dp, 50.dp)
.background(Color.Green)
)
}
上面兩段代碼的意思都是在一個(gè)綠色背景寬高為50,50的Box控件中設(shè)置點(diǎn)擊事件和Padding。首先我們可以直觀的看到修飾符的使用是鏈?zhǔn)降姆显蹅冋f的第一個(gè)有序性。讀者可以觀察兩個(gè)gif圖中水波動(dòng)畫的作用范圍,可以清楚的看到第一張圖波紋是作用范圍是涵蓋了邊距的而第二張水波動(dòng)畫的范圍僅僅作用在綠色矩形內(nèi)部。第一段代碼是先設(shè)置的點(diǎn)擊事件而后設(shè)置的邊距,而第二段代碼是先設(shè)置邊距而后設(shè)置了點(diǎn)擊事件,就出現(xiàn)了不同的動(dòng)畫表現(xiàn)。我們通過這個(gè)例子就可以直觀的看到修飾符的第二個(gè)有序性,也就是修飾屬性對(duì)于UI展示作用的有序性,即屬性發(fā)生作用的先后順序和設(shè)置順序是一致的。
不可變性
對(duì)于修飾符的不可變性筆者認(rèn)為就是當(dāng)設(shè)置的屬性值確定時(shí),被修飾的UI就確定了不會(huì)再變了。下面就展示一個(gè)位于屏幕中心,背景為綠色,旋轉(zhuǎn)45度,寬度等比例拉伸2倍的正方形。
Box {
Box(
Modifier
.rotate(45f)
.scale(2f)
.align(Alignment.Center)
.size(50.dp, 50.dp)
.background(Color.Green)
)
}
原文鏈接:https://juejin.cn/post/7153189769147580446
相關(guān)推薦
- 2022-11-18 flutter?showModalBottomSheet常用屬性及說明_Android
- 2022-03-28 一篇文章帶你學(xué)習(xí)python的函數(shù)與類_python
- 2022-05-09 Python的數(shù)據(jù)結(jié)構(gòu)與算法的隊(duì)列詳解(3)_python
- 2022-05-17 MacOS系統(tǒng)(macmini macbook pro)上安裝RabbitMQ
- 2021-12-18 ECommerceCrawlers項(xiàng)目分析(十二)
- 2022-06-20 深入淺析C#?11?對(duì)?ref?和?struct?的改進(jìn)_C#教程
- 2022-08-13 SpringSecurity+JWT實(shí)現(xiàn)認(rèn)證及授權(quán)詳細(xì)步驟
- 2022-04-06 通過實(shí)例詳解C語言函數(shù)返回值_C 語言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支