国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

seo網(wǎng)站建設(shè)價(jià)格自己怎么創(chuàng)建網(wǎng)站

seo網(wǎng)站建設(shè)價(jià)格,自己怎么創(chuàng)建網(wǎng)站,如何制作一個(gè)個(gè)人網(wǎng)站,企業(yè)郵箱 網(wǎng)站建設(shè)一、概念 1.1 Compose優(yōu)勢(shì) 由一個(gè)個(gè)可以組合的Composable函數(shù)拼成界面,方便維護(hù)和復(fù)用。布局模型不允許多次測量,提升了性能。Compose可以和View互操作(相互包含對(duì)方)。 1.2 聲明式UI APP展示的數(shù)據(jù)絕大多數(shù)不是靜態(tài)數(shù)據(jù)而是會(huì)…

一、概念

1.1 Compose優(yōu)勢(shì)

  • 由一個(gè)個(gè)可以組合的Composable函數(shù)拼成界面,方便維護(hù)和復(fù)用。
  • 布局模型不允許多次測量,提升了性能。
  • Compose可以和View互操作(相互包含對(duì)方)。

1.2 聲明式UI

APP展示的數(shù)據(jù)絕大多數(shù)不是靜態(tài)數(shù)據(jù)而是會(huì)實(shí)時(shí)更新,傳統(tǒng)的命令式UI寫法更新界面繁瑣且容易同步錯(cuò)誤。Compose會(huì)對(duì)界面用到的數(shù)據(jù)自動(dòng)進(jìn)行訂閱(屬性委托),當(dāng)數(shù)據(jù)變化時(shí)界面會(huì)自動(dòng)更新(同為數(shù)據(jù)和界面關(guān)聯(lián),databinding只能更新組件的值,Compose可以控制組件切換顯示)。

?

聲明式UI只需要把界面寫出來,不需要再手動(dòng)寫代碼去刷新界面。重新生成整個(gè)屏幕界面成本高昂,Compose生成界面后,數(shù)據(jù)變動(dòng)只執(zhí)行必要的重組(局部刷新)。
命令式UIxml寫的界面,當(dāng)數(shù)據(jù)變了就需要Java/Kotlin手動(dòng)(命令指揮)刷新,即 findViewById( ) 遍歷樹拿到控件,再 setText( ) 設(shè)置數(shù)據(jù)改變節(jié)點(diǎn)。

二、使用

2.1?添加依賴

查看官方最新版本

兼容性對(duì)應(yīng)關(guān)系

????????BoM物料清單:隨著依賴的庫越來越多,為了保證不同庫不同版本之間能正常配合,引入依賴時(shí)具體的庫不指定版本,而是由BoM管理。

????????最低版本:Kotlin ≥ 1.5.10、Android ≥ 5.0(API21)、AndroidStudio ≥ Arctic Fox 2020.3.1。

android {buildFeatures {compose true    //啟用Compose功能}composeOptions {//見上方鏈接,此處定義的Kotlin編譯器擴(kuò)展版本需要對(duì)應(yīng)兼容的Kotlin版本kotlinCompilerExtensionVersion = "1.4.2"}
}
dependencies {//Composedef composeBom = platform('androidx.compose:compose-bom:2023.01.00')implementation composeBomandroidTestImplementation composeBom//主題implementation 'androidx.compose.material3:material3'//預(yù)覽implementation 'androidx.compose.ui:ui-tooling-preview'debugImplementation 'androidx.compose.ui:ui-tooling'//UI測試androidTestImplementation 'androidx.compose.ui:ui-test-junit4'debugImplementation 'androidx.compose.ui:ui-test-manifest'//可選搭配implementation 'androidx.activity:activity-compose:1.7.0'   //Activityimplementation 'androidx.lifecycle:lifecycle-viewmodel-compose:2.6.1'   //ViewModelimplementation 'androidx.compose.runtime:runtime-livedata'  //LiveDataimplementation 'androidx.constraintlayout:constraintlayout-compose:1.0.1'   //ConstraintLayoutimplementation 'io.coil-kt:coil-compose:2.3.0' //Coilimplementation 'androidx.navigation:navigation-compose:2.5.3'   //Navigation//    implementation "com.google.accompanist:accompanist-appcompat-theme:0.28.0"  //AppCompatTheme
}

?2.2 Activity調(diào)用

需要繼承的是ComponentActivity,使用 setContent { } 替換 setContentView( )。

class MainActivity : ComponentActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContent {    // 設(shè)置顯示內(nèi)容,用來替換setContentViewShow("Hello World!")}}
}

三、預(yù)覽效果 @Preview

使用該注解的組合函數(shù)可以在AndroidStudio右上角直接預(yù)覽效果和點(diǎn)擊交互,也能直接部署該預(yù)覽在真機(jī)或模擬器上查看效果和點(diǎn)擊交互。AS按出prev能快速打出模板代碼。

  • ?只能修飾無參可組合函數(shù):可以用無參函數(shù)包裹有參函數(shù)傳個(gè)值給它來預(yù)覽。?
neme設(shè)置的該名稱會(huì)在布局預(yù)覽中顯示。
showBackground預(yù)覽默認(rèn)是不顯示背景色的,設(shè)為true才顯示。
backgroundColor設(shè)置背景顏色。
showDecoration是否顯示Statusbar和Toolbar,true為顯示。
group為該P(yáng)review設(shè)置group名字,可以在UI中以group為單位顯示。
fontScale可以在預(yù)覽中對(duì)字體放大,范圍是從0.01。
showSystemUi設(shè)為?true 顯示系統(tǒng)界面(狀態(tài)欄,屏幕按鍵)。

widthDp

heightDp

預(yù)覽區(qū)域的大小(單位為dp),和?showSystemUI 互斥。
device預(yù)覽機(jī)型(Devices.DESKTOP、Devices.PIXEL_4、Devices.NEXUS_6)。
apiLevel預(yù)覽不同版本的效果
@Preview
@Composable
fun WrapperShow() {Show("Word")    //包裹一層再傳個(gè)值
}@Composable
fun Show(str: String) {Text(text = "Hello ${str}!")
}

3.1?對(duì)屏幕級(jí)組合函數(shù)使用預(yù)覽失敗

原因:系統(tǒng)無法正確實(shí)例化?ViewModel?因?yàn)樗蕾囉谶\(yùn)行中的?Android?系統(tǒng),而預(yù)覽系統(tǒng)只有UI相關(guān)代碼。

解決:抽離出一個(gè)只依賴于狀態(tài)類的組合函數(shù)。

@Composable
fun DemoScreen(viewModel: DemoViewModel = viewModel(),
){DemoContent(viewModel.demoState)
}@Composable
private fun DemoContent(demoState:DemoState
){/* ... */
}@Composable
@Preview
private fun PreviewDemoContent(){DemoContent(remember{DemoState()})
}

3.2?引用了Android運(yùn)行時(shí)才能獲取的類預(yù)覽失敗

原因:像 Application 類在預(yù)覽系統(tǒng)中是不存在的。

解決:通過?LocalInspectionMode.current?來判斷當(dāng)前是否運(yùn)行于預(yù)覽系統(tǒng)中,true就使用固定字符串。

@Composable
fun MyTest(){Text(text=if(LocalInspectionMode.current) "預(yù)覽中" else MyClass.getDesc())
}
http://m.aloenet.com.cn/news/29870.html

相關(guān)文章:

  • 商貿(mào)網(wǎng)站管理培訓(xùn)機(jī)構(gòu)
  • ftp是專門提供文件傳輸?shù)木W(wǎng)站百度注冊(cè)新賬號(hào)
  • 品牌seo公司焦作關(guān)鍵詞優(yōu)化排名
  • 建網(wǎng)站的服務(wù)器學(xué)電商出來一般干什么工作
  • 創(chuàng)意個(gè)人網(wǎng)站設(shè)計(jì)大冶seo網(wǎng)站優(yōu)化排名推薦
  • 律師網(wǎng)站深圳網(wǎng)站設(shè)計(jì)百度app在哪里找
  • 黔東南網(wǎng)頁設(shè)計(jì)seo搜索引擎優(yōu)化人員
  • wordpress掃碼收款seo網(wǎng)絡(luò)營銷課程
  • 公司做的網(wǎng)站賬務(wù)處理淘寶關(guān)鍵詞搜索量查詢
  • 開發(fā)公司人效比seo排名培訓(xùn)學(xué)校
  • 做網(wǎng)站彩票代理犯法嗎我是站長網(wǎng)
  • php做網(wǎng)站網(wǎng)絡(luò)營銷有什么崗位
  • 國內(nèi)可以做的國外兼職網(wǎng)站海外營銷方案
  • 專門做微信推送的網(wǎng)站搜索引擎優(yōu)化要考慮哪些方面?
  • 海北高端網(wǎng)站建設(shè)哪家好網(wǎng)站推廣途徑和推廣要點(diǎn)
  • 網(wǎng)站建設(shè)方案書深圳關(guān)鍵詞推廣優(yōu)化
  • 東營本地網(wǎng)站制作公司可以入侵的網(wǎng)站
  • 公司網(wǎng)站維護(hù)該誰來做全網(wǎng)營銷外包
  • java可以做微信網(wǎng)站么站長統(tǒng)計(jì)工具
  • 做域名后就得做網(wǎng)站嗎河北高端網(wǎng)站建設(shè)
  • 網(wǎng)站title是什么培訓(xùn)機(jī)構(gòu)加盟店排行榜
  • 網(wǎng)站備案 取名資訊通不過外貿(mào)網(wǎng)站推廣費(fèi)用
  • 去除wordpress相冊(cè)系統(tǒng)優(yōu)化工具
  • 做網(wǎng)站的回扣什么是seo?
  • 蘇州做門戶網(wǎng)站的公司公司網(wǎng)站怎么優(yōu)化
  • 中國建設(shè)銀行移動(dòng)門戶網(wǎng)站百度推廣客戶端app
  • 阿里巴巴網(wǎng)站做推廣效果怎么樣如何制作一個(gè)網(wǎng)址
  • 重慶福彩建站2022新聞熱點(diǎn)10條
  • 怎么把網(wǎng)站做火seo入門培訓(xùn)課程
  • 泰國做彩票網(wǎng)站企業(yè)網(wǎng)站營銷的實(shí)現(xiàn)方式