<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Jetpack Compose學習(12)——Material Theme的主題色切換

      原文:Jetpack Compose學習(12)——Material Theme的主題色切換-Stars-One的雜貨小窩

      閑著無事研究了下Jetpack Compose M3 主題切換效果

      本系列以往文章請查看此分類鏈接Jetpack compose學習

      如何生成主題

      首先,我們需要知道的是,M3有提供個在線網站供開發者進行快速生成主題,詳情可見- Material Theme Builder

      不過可能需要點魔法才能訪問,頁面如下

      而右上角,則可以快速導出主題文件(由于我們是Compose,所以選擇導出compose即可)

      會得到一個名為kt的主題文件,如下圖所示

      之后我們根據需要設置當前的主題使用即可(通過MaterialTheme的colorScheme參數進行設置)

      • lightColorScheme開頭的是亮色主題
      • darkColorScheme則是暗色主題

      代碼

      我們需要更改亮色或暗色主題,只需要更改colorScheme參數即可

      object MyThemeStyle{
          var isDark = mutableStateOf(false)
      
          val LightColorPalette = lightColorScheme(
      
          )
      
          val DarkColorPalette = darkColorScheme(
      
          )
      }
      
      @Composable
      fun App() {
          var isDark by remember { MyThemeStyle.isDark }
      
      	//根據當前選擇,進行亮色和暗色主題的更改
          MaterialTheme(
              colorScheme = if (isDark) DarkColorPalette else LightColorPalette
          ) {
      		Box{
      			Button(onClick = {
                      MyThemeStyle.isDark.value =MyThemeStyle.isDark.value.not()
                  }){
                      Text("更改主題")
                  }
      		}
      	}
      

      當然,上面的代碼,如果重啟軟件之后就會還原為默認,我們可以將配置保存起來中,每次啟動軟件讀取即可

      • 桌面端: 通過某個文件來進行配置保存,我自己的做法是使用Properties文件
      • Android: 通過SharePreference等保存配置即可

      說明

      需要注意的是,我們在MaterialTheme的組件里的其他Composable,布局得使用Surface,即可觸發對應的字體顏色設置,圖標顏色設置(更換主題的時候也會自動更換主題),用其他布局的@Composable,則無此自動更改顏色的效果

      primary和onPrimary 意思是底部背景色為primary,而onPrimary對應的是背景上的文字或圖標icon的顏色,其他幾個主題色也是類似原理,不再贅述

      上面示例代碼中,我們只是設置了主題色,其他形狀,排版(字號)我們都還是使用默認的

      下面則是補充下MaterialTheme其他幾個常用的對象簡單使用

      設置形狀

      可以使用此對象 MaterialTheme.shapes來進行設置組件背景為圓角矩形,如下面示例代碼

      @Composable
      Surface(Modifier.background(Color.Black,MaterialTheme.shapes.small)){
      	
      }
      

      設置顏色

      @OptIn(ExperimentalFoundationApi::class)
      @Composable
      fun ClickText(content: String, onclick: () -> Unit) {
          Text(content, color = MaterialTheme.colorScheme.secondary, modifier = Modifier.onClick {
              onclick.invoke()
          }.pointerHoverIcon(PointerIcon.Hand, false))
      }
      

      設置字號

      字體的字號大小也可以使用MaterialTheme.typography來設置,如下面代碼:

      @OptIn(ExperimentalFoundationApi::class)
      @Composable
      fun ClickText(content: String, onclick: () -> Unit) {
          Text(content, color = MaterialTheme.typography.titleMedium, modifier = Modifier.onClick {
              onclick.invoke()
          }.pointerHoverIcon(PointerIcon.Hand, false))
      }
      

      參考

      posted @ 2024-07-26 16:21  Stars-one  閱讀(965)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲熟女乱一区二区三区| 深夜释放自己在线观看| 国产成人a在线观看视频| 四虎精品国产永久在线观看| 国产在线欧美日韩精品一区| 在线视频观看| 青青青爽在线视频观看| 一区二区免费高清观看国产丝瓜| 永久免费精品性爱网站| 成人国产精品一区二区网站公司| 四虎国产精品永久地址99| 欧美成人午夜精品免费福利| 国产女人在线视频| 开心五月婷婷综合网站| 激情四射激情五月综合网| 神马视频| 亚洲国产日韩在线视频| 中文字幕日韩精品国产| 亚洲男人天堂一级黄色片| 国产97人人超碰CAO蜜芽PROM| free性开放小少妇| 亚洲精品中文字幕在线观| 亚洲国产大胸一区二区三区| 女人与公狍交酡女免费| 里番全彩爆乳女教师| 久久无码人妻精品一区二区三区| 国产精品一区二区三区三级| 一本大道久久香蕉成人网| 真人性囗交视频| 动漫av纯肉无码av在线播放| 17岁日本免费bd完整版观看| 亚洲色无码播放亚洲成av| 中文字幕人妻中出制服诱惑| 四虎国产精品永久地址99| 成人AV专区精品无码国产| japanese无码中文字幕| 日韩中文字幕av有码| 国产精欧美一区二区三区| 国产精品一区二区三区四区| 免费又大粗又爽又黄少妇毛片| 国产精品污www在线观看|