【原創】Jetpack Compose學習筆記(一)


Jetpack Compose學習筆記(一)

Jetpack Compose是Google推出的全新的UI框架。很多人都說學不動了,但是作為一個程序員,學不動也要學哦,不然就會被淘汰。

目錄結構

HelloWorld式這里就免了,新建工程的目錄結構就這個樣子,默認新建了一個主題的包,同時在res目錄下也沒有了layout目錄。Compose是響應式UI,不同以往的xml布局,所有頁面都是通過代碼來實現的。

初識

打開MainActivity如下

image.png

左邊是編碼,右邊可以實時預覽到效果,預覽主要是通過@Preview注解來展示。

設置界面不再是之前的setContentView而是通過函數setContent,進入setContent方法里面我們也可以看到setContentView的調用,實際上JetpackCompose是在一個ComposeView上構建的UI體系。

預覽工具

具體實現原理后面再學習,所話說工欲善其事,必先利其器,所以先學習下這個@Preview注解

@Preview的作用僅限右側預覽面板的使用,主要參數如下:

  • name 預覽面板中該組件顯示的名稱

  • group 組名,在預覽面板中以組顯示

  • widthDp 預覽面板中渲染的寬

  • heightDp 預覽面板中渲染的高

  • fontScale 預覽中字體縮放比例

  • showSystemUi 是否展示狀態欄和actionbar,預覽效果

  • showBackground 是否展示背景

  • backgroundColor 背景顏色

  • uiMode UI模式,夜間模式等

  • device 預覽的設備型號

下面我們分別來看看各個參數的實際效果。

name

預覽面板中該組件顯示的名稱,默認展示名稱為你預覽方法名字這里DefaultPreview。當我們配置以后就會顯示配置的名稱。

@Preview(
    name = "這是展示的名稱",
    showBackground = true)
@Composable
fun DefaultPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

group

在開發中我們會用很多預覽的組件,為了方便管理,可以通過該屬性將預覽的組件分組,在預覽時候選擇同一組內的顯示

@Preview(
    name = "這是展示的名稱",
    group= "簡單頁面",
    showBackground = true)
@Composable
fun DefaultPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

widthDp & heightDp

我們可以通過配置widthDpheightDp屬性來指定預覽界面的寬高。下圖配置了320x200大小的預覽界面,單位是dp。

@Preview(
    name = "這是展示的名稱",
    group= "簡單頁面",
    widthDp = 320,
    heightDp = 200,
    showBackground = true)
@Composable
fun DefaultPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

fontScale

在預覽中如果你覺得字體顯示太小或太大,你可以通過設置fontScale屬性來設置字體的縮放大小比例,最小0.01。下圖是默認12倍縮放的展示。

@Preview(
    fontScale = 2f,
    showBackground = true
)
@Composable
fun FontScalePreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

showSystemUi

如果你看慣了xml配置中那種展示效果,你可以通過配置showSystemUitrue來展示頁面效果。

@Preview(
    showSystemUi = true,
    showBackground = true
)
@Composable
fun ShowSystemUiPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

showBackground

默認新建的項目預覽showBackgroundtrue,也即展示背景,背景默認白色。如果不想展示去掉該屬性即可,效果如圖中上

@Preview(showBackground = true)
@Composable
fun ShowBackgroundPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

backgroundColor

為了更好的看到預覽效果,我們可以通過backgroundColor配置預覽頁面的背景色。設置該屬性必須設置showBackground = true否則無效果哦。

@Preview(
    showBackground = true,
    backgroundColor = 0xABCC33
)
@Composable
fun ShowBackgroundPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

uiMode

如果你想看下夜間模式,可以通過配置uiMode來實現。下面展示了夜間模式效果。

@Preview(
    showBackground = true,
    uiMode = Configuration.UI_MODE_NIGHT_YES,
)
@Composable
fun ShowBackgroundPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

device

話說這個屬性沒測試出來什么效果。。。其實你都能自定義寬高了,也不需要用這個設備顯示效果了。

@Preview(
    showBackground = true,
    device = Devices.NEXUS_5
)
@Composable
fun BackgroundColorPreview() {
    ComposeHelloTheme {
        Greeting("Android")
    }
}

呃呵🤗🇨🇳,今天到這,下個學學Text


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM