Android開發(fā)Jetpack?Compose元素Modifier特性詳解
正文
本文將會(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)
)
}

到這里本文對(duì)修飾符的特性介紹就結(jié)束了,修飾符還有很多的屬性讀者可以自行嘗試研究,但是無論設(shè)置什么屬性修飾符都遵循咱們討論的這兩個(gè)屬性。這里附上修飾符的官方文檔鏈接點(diǎn)擊查看Modifier的官方文檔,更多關(guān)于Android Jetpack Compose元素Modifier的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- 融會(huì)貫通Android?Jetpack?Compose中的Snackbar
- Android?Jetpack?Compose開發(fā)實(shí)用小技巧
- Android JetpackCompose使用教程講解
- Android中分析Jetpack?Compose動(dòng)畫內(nèi)部的實(shí)現(xiàn)原理
- Android?Jetpack結(jié)構(gòu)運(yùn)用Compose實(shí)現(xiàn)微博長按點(diǎn)贊彩虹效果
- Android Jetpack Compose實(shí)現(xiàn)列表吸頂效果
- Android Jetpack Compose無限加載列表
- Android使用Jetpack Compose開發(fā)零基礎(chǔ)起步教程
相關(guān)文章
解決Android 6.0獲取wifi Mac地址為02:00:00:00:00:00問題
這篇文章主要介紹了Android 6.0獲取wifi Mac地址為02:00:00:00:00:00的解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
Android ScrollView 下嵌套 ListView 或 GridView出現(xiàn)問題解決辦法
這篇文章主要介紹了ScrollView 下嵌套 ListView 或 GridView 會(huì)發(fā)列表現(xiàn)數(shù)據(jù)只能顯示一行。因?yàn)樗麄兌际菨L動(dòng)結(jié)構(gòu),兩個(gè)滾動(dòng)條放到一起就會(huì)引起沖突,這里提供解決辦法相關(guān)資料,需要的朋友可以參考下2017-07-07
Android textview 實(shí)現(xiàn)長按自由選擇復(fù)制功能的方法
下面小編就為大家?guī)硪黄狝ndroid textview 實(shí)現(xiàn)長按自由選擇復(fù)制功能的方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-04-04
Android實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)斷點(diǎn)續(xù)傳功能,能在上次的斷點(diǎn)處繼續(xù)上傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-07-07
Android組合式自定義控件實(shí)現(xiàn)購物車加減商品操作
這篇文章主要介紹了Android組合式自定義控件實(shí)現(xiàn)購物車加減商品操作,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11

