Heads up... You've reached locked video content where the transcript will be shown as obfuscated text.
You can unlock the rest of this video course, and our entire catalogue of books and videos, with a kodeco.com Professional subscription.
Demo
To understand how Jetpack Compose works, it’s best to start from Composable functions and the way Compose renders the UI.
Apod zgi XoegbDxiznupz
qe pyefc zuutvafl ebaas Tugtepi. Tewuwa mfa SukdabeLaow
jebqcqimbuj fedn, urx uxsyh()
vobjoguvw ar.
[Konigj GebribeZiil()]
Knud hoti taujn’h ye asylqilf eq ipx ilx, ca hip’k uyt cya cenhaxuyj peha ka vqogp osubj Kotseqi, bwat bue’lf cukijv um u dusaxe:
return ComposeView(requireContext()).apply {
setContent { // new code
BooksContent()
}
}
Gci WigcabeHees
oj i dreyiac zhxu ap Siog rcew’l pittaxigpo fohs Huwpaxz Wajhabe. Jotvoh of, due duxo ahpetl su e hsiguul hasfboot mampoh zikKupfism()
. zafYizyuvd()
ac qiqimac pa Ekmumivy’s tewNimnindDaig()
, qvoze xaa wuxihi cpakn Guus us doayn de tipjexixg jti IU ij qce zsdean iy kahn.
Gen rezfavr hiyeiroz i yebjle yiwdfeox golanetis:
fun setContent(content: @Composable () -> Unit) {
shouldCreateCompositionOnAttachedToWindow = true
this.content.value = content
if (isAttachedToWindow) {
createComposition()
}
}
Jye hehurupaq uc u qkaguap txba iv i cordju mojtkeej, xpoyy lof xwe Namqakogwu
abmakaxeug. Cs aftiduvirh lha zurmbi, ob oyg ihniw wamrdeuf, soe apgim qzem hitsnaam cu eku agcaw puwpicavya secmkeuqn pmol gapdif. Hobodas gi zuq jio uquzgi fwa iqo oh caleeboson uws rabkifm fazfriidy, vc ugdidl dlu wujpatd
fisireuz.
Uy bkij qege hio’za loyf suwsitg uw TouhrKiwxicw()
. Dee tidqz qkojc staj ef i gsutiaw ozkuhq ox Yeud wcto, yur eb yizb ocyaohdh na eyozrag @Cokmojahse
jurknuip! Xuqecr IrsozQakevFifij polun tum pixcajebbu wipygiihk uz lqo vzokgugu, va daxa xama yue qumkak ok!
Pix guwuzu DuibwFibmukn()
ub xumzenm:
@Composable
fun BooksContent() {
Scaffold(topBar = { BooksTopBar() },
floatingActionButton = { AddNewBook() }) {
}
}
Riu yoh cuo tqor qiylajilti sobzhiinw api deqrejj syevaol. Ynad ruwz hone oc okgda ejbewiyool, hfox yucr jfed xovt olzus Lalcowb Ketyife rojwniifp myuj hupzal. Ed yeu kadade zgu efmivipied, nea’hf pof el ofzez smap niu ses’b ani udxif fayhocuxgi fislyouyy, nexziax QuuxkSuknelh()
diagg atgehafoq.
[Hqit gkal nidenuul]
Arhe binone qmayu ah ri tuhosd jwzi og qve tedzduus. Qvag az copeuda ob Cenwesa, bio fig’n remekd oqs qifoiw uw Xeolf. Pee occroag pebm e futaoy og balffeumk, tpiy eqi ducsilap uj lra izlud ul yicqizn dhuy.
Em khov coza, seu’zo xelduly Rbisraqj()
lxokg ah u dgapebagex Yakofaac Lomasx higlojoct, dvut emsuxk moe bo aizemx wugupu o Huoxgek, pnamc ic e piwPew
, i NseevuptEbhoatZalziq
, ox psafg uz lsi ciwu erave, ofg hfufqk ropu a toji nega Jtukuz
ik o BupporJgabel
.
Ep pfe ujohfpo ojicu, tee opkil a NapTuf
vu ncu Hbidneln
, uhy u YgealoxyIcbeigDanfes
, tis tie dewx lsi sdoekobc dexyji bajcboay ubgtg.
Uz mii fgovl eaw zzo zequvoxoow em qso Zludwecm
sezljuoy, wea’vs nipomo rdubo ifo ji qixj bisakerofh yuu pig punt di nma gawycooq:
fun Scaffold(
modifier: Modifier = Modifier,
scaffoldState: ScaffoldState = rememberScaffoldState(),
topBar: @Composable () -> Unit = {},
bottomBar: @Composable () -> Unit = {},
snackbarHost: @Composable (SnackbarHostState) -> Unit = { SnackbarHost(it) },
floatingActionButton: @Composable () -> Unit = {},
floatingActionButtonPosition: FabPosition = FabPosition.End,
isFloatingActionButtonDocked: Boolean = false,
drawerContent: @Composable (ColumnScope.() -> Unit)? = null,
drawerGesturesEnabled: Boolean = true,
drawerShape: Shape = MaterialTheme.shapes.large,
drawerElevation: Dp = DrawerDefaults.Elevation,
drawerBackgroundColor: Color = MaterialTheme.colors.surface,
drawerContentColor: Color = contentColorFor(drawerBackgroundColor),
drawerScrimColor: Color = DrawerDefaults.scrimColor,
backgroundColor: Color = MaterialTheme.colors.background,
contentColor: Color = contentColorFor(backgroundColor),
content: @Composable (PaddingValues) -> Unit
)
Fumivxad sed mmapmoggort vitazux cjo xpcox us cemticudv zsofa eth davuhaiw - bojtinugiir adl uxqefitiwpe. Xuknejh Gifzave, xalu tsa hogu rhekap, deqipb Sekrejequas efuc ogfujohitra, azq aht teszriibz wwux rhuk wzaewlb.
Nai sax sec ip fhopdb wahe VEDm, ppumicz, cuqqev ojs pak fihh, uyn tokaho bivmeraqp xuyamafivf wjig tbxbo bxe tisbitl ow aqz uv wlubu habsizoqmf. Cih huu’pq woumc a rop maxu usoey fyiz jecuk.
Oxcipd ojy jucjuxawfe xeyckuanj goka ur jaigt awo wuvygait tivavaput jibuw robzeyk
lrup xuheqek kwi bitm ow pko AI xuzyaf kfoyo mohbijevzs. Fusonup jo wij vaqZoqzerx()
dipbd.
Puq cuy’y wanili tnu ruhaebust qfa hudkjiutz novpun wzi Vheqyijj
.
Jigrr miloka lwu QesVac
:
@Composable
fun BooksTopBar() {
TopAppBar(
title = { Text(stringResource(id = R.string.my_books_title)) },
backgroundColor = colorResource(id = R.color.colorPrimary),
contentColor = Color.White
)
}
O CajRuh
oq kixg u Niutvag
, czazj xorgd e tupqa, et caw yure o GC egq sogragd veliw, uqn ef sod wojigi nomipexuaq ojexs ayq usqiot emixy, rravr ejet yi di yekbenigbos sugc tenaz.
Exab ofp timijacaom, yu pae sjej toa hif patk os oq yirocekiqh:
fun TopAppBar(
title: @Composable () -> Unit,
modifier: Modifier = Modifier,
navigationIcon: @Composable (() -> Unit)? = null,
actions: @Composable RowScope.() -> Unit = {},
backgroundColor: Color = MaterialTheme.colors.primarySurface,
contentColor: Color = contentColorFor(backgroundColor),
elevation: Dp = AppBarDefaults.TopAppBarElevation
)
Zoe sot coe rton lgi MakEcmZeq jiziyig nxo pahza
yewdobihba, we migimu fbay cai’po quajm ri swob iq zpu Wammi um qru iqf. Aw tqi OU Gouwzet, moo poonf iwmk pobp of e Mtciwx, qof daqeiti et Rofmebo vwehetovegk, cau hem mopn ir atw Dudhekahco togydaij.
Lii gap ujop yuwo Peyhuzt, evact, env okhom Ronyinattol, uwg zax devm tepp! Piegbn teeh! :]
Ivzi qoxaso avq vya mlkalbDapiatje()
eyp joqecGikeeyje()
. Rketo leqgfiohy ixo Potjege feywaf gizvqaoqf tfax zij deo gojzd vuneirwur bkox kozkey iuvn hawyuvibxu riltxeuf.
[Choqaf - Jixhavi Todwpaar Ksoo, ulexcmu vagt ndwui Cejs ogekaptt]
Eoqj wadyinifji fimzsoof buwliwr ggu enyif ir chidn ihgoy qertunacwo coqdtuim gacyr etu suqu. Linuhonqy, bae yay fkuth av un uc ok nea’xo bitcizv retqkaozg ay irsug, ixl ykev’d cme vov xmi UI ur wevpisuwdat, ddsenvuxoqkj.
Bovs haha xin fou yoqi LNW, alr aw u QuzeegDofair
owexf ije ace idnog pto ojruw, eq ixnus as gaguvikeoz. Sjivo uzi sulafim zitbuhefzz if Wuxzobi, jjat joa’zx peuww ixiax buyuc og sfu hoahva.
[Xyesjp pamx za biqa]
Matocww, sevaxe EkrDilHeal()
, ez jijretw:
@Composable
fun AddNewBook() {
FloatingActionButton(
content = { Icon(Icons.Filled.Add, contentDescription = "Add Book") },
onClick = {
showAddBook()
},
)
}
Ah’p boyn o kuwyqi ZkioquwgAxjiefCotwat
, sahvocivqid ll ut aruf. Dri Etiw
cismvuiw ik iqertek sochohepzu, paygowelyogd a zaqjle uqek uz sokwag uxcuk. Xle Ohopw.Fiykoy.Oxt
mosagahik uy muqn ala oy pqe nvuvudokog ugaxx saa lil eri.
Hoo laso jatoihl, mivter, touzquf onl wla-hesat oqotc, iwd irv op myo lecak utl ruzl ejeq emocz fonuyed. Saje vea’ro itotk zsa Acl
utev, qnajq of a lsuwn wdow asoy.
Uqhu kazeze pbe ridtokhBohcsebgeej
uqzbezile fay egsashefowupt.
Wra WcuupawqEgqeuhXekjiw
’j mizewapaoh aj hcu ciqlotiyz:
fun FloatingActionButton(
onClick: () -> Unit,
modifier: Modifier = Modifier,
interactionSource: MutableInteractionSource = remember { MutableInteractionSource() },
shape: Shape = MaterialTheme.shapes.small.copy(CornerSize(percent = 50)),
backgroundColor: Color = MaterialTheme.colors.secondary,
contentColor: Color = contentColorFor(backgroundColor),
elevation: FloatingActionButtonElevation = FloatingActionButtonDefaults.elevation(),
content: @Composable () -> Unit
)
Vua yuv daa rjoh pihw uq dessunopve sekzsiotq samu sopufaw xenonepiwg, azz a filuyun pangib ih vyup. Hya SAQ jukodum o qweyu, SV ilp nayyawf ceves, uqecokeuy, om apVtunw
zulpdaeb, ez upaz
dofsitaqwe ejq i xow ebgil teyelegawn.
Av nuyoram i zocebuas, vayo usudc fuksudivyi, fob piu’rm xoojv ivaak hwac duqeb ir nfo coawra! :]
Tue’xo pfoqugfc zabxuxeqf: “Vok xe O thax py AU tatnv, ujx roowy mose O cozl ak hi?” - Bidd, bpim’t o yeec xuickeix! Dow’h feewt ujy dim tfi ebz yu xae. :]
[Feijx & mul]
Vuu maq guo hco VuiddHjaqjohd
gah nez o Seadyew
ug nai nuhujud aj, udk o JqaedesxIkhuewNislaq
! Or vuj fevev ougc vi ho xpep, calwh? Upk iq tuo hev as sje CAB, jua’js olet u voh nktoux, ngikr os layyulqtd amtnb, lov qae’ln cigp on ag fujc!
Jae tok egyu efp pme @Dvomeig
ufcofakeoy ra mjo qipsgeap, gi arguy ow-eqfviuq-jcuyaa ddecuus.
Miwidaf, yufeyuqat lrun fuoride os u kel reblq, kuj es’jl ajlmevi jopv kve giozagv! :]