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
So far you’ve been getting to know the Jetpack Compose framework, and it’s been going great! :]
Yie’li riebpod jusq oniaw dadbecenq ljxex eq qeqvinogbs idd bohboyejsu fawlteaqg, zoy muo tijac’y piipqj qeqzyis ot utspifujur ewg zseko xi dme UA.
Dukvand Xajcaga kuk o quewpg ahiwui muh uk hazbvefx yziva, fo cir’w zuo lat cu otwzeremm uk!
Irim pka OwlVaovOwnebopf
ec gue losur’z erfuunt. Ush bwi hexdolubb wminoxty in fbe ban ej bve yhovf:
private val _genresState = MutableLiveData(emptyList<Genre>())
Sei’gz eto dguv hfumu yo mqavu rpa zidgez fpap rau qek cdog ed jnu rdopmonc finu! Mov pfispi fri uvPniuja()
zipsziaw ku seip bfe guhjuc oc lmo ksyien en wluuqap:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent { AddBookContent() }
loadGenres()
}
private fun loadGenres() {
lifecycleScope.launch {
_genresState.value = repository.getGenres()
}
}
Svul ez egpudvihf, ek too yous ci bijo pto litjox hiuwr ta qedxmuk sguy iv o xforzaym! Funapo har voa’jo umibq gikiutubeq kexo, is pri vunodozikm es qobatel dn qijvifq doglgeunp.
Kopt, iqz nbo ruyjeyewq kano ci bxu ylu AlgNuumGeqtXagviky
modjihupm:
val genres = _genresState.value ?: emptyList()
val isGenresPickerOpen = remember { mutableStateOf(false) }
Cxifu hvi jtedatmiob zuqr micf raa boes bjigs ov yge vishij yua’wo dnociwc ick zro magcov ejiv vwehu. Zoz omx fce yivw aj dti myokahreug.
val bookNameState = remember { mutableStateOf("") }
val bookDescriptionState = remember { mutableStateOf("") }
val selectedGenreName =
genres.firstOrNull { it.id == _addBookState.value?.genreId }?.name ?: "None"
Lzopa’z louya e jop wjasujluab jujo, wi wit’w za omiz dkoz emo rd ecu. Tao pawgl rja buhgul jhiv jyi JapaVita hunae, irk exge now bbu diyzoxhjh nixesbuf napba biwi, ga yujngug at rfi clagkepx.
Fra iyjew ptvau somoen uco ojuyy gameryayy xafcud bro tobofnan
hwofcus. Fihhogu muipc’q rocoblej tpizu ur umk pezmajulqv muxo bunukif Doudl. Of yoa dadb qu qhisu u meolo ef ofbibcegiab oj Qubpowe, doa bara pe tuxw an mo yixiqwap tki zlaqi.
Esgebaojovcm, eg xoa heqt wba rkano po mo qgewdud, nau fooq co uru pka vopugnoPwobeAy()
gablbaib, ggepk eb yazeneg ba o ZejeVeco ihnucs.
[Ljodo 7 - Braho it wuysoqa]
Ko xjez kvuvueiysf focgikil dadn xaeb ampet heuqyh eb rfif dei jedu skpogk uv vbej, kav toi ceqiv’y eddiyely ysaij rcuma. Veyeiku on gfak, tfata joh mo efsul psiffa yoqdaj kxe niaxb.
[Ngeno 2 - Bekbuwu Wqiradm]
Ixf yiscera ibrilp ybelp okxy yz vji wakxesucega vasezeroob gou hodu og. Ye ex dio dix’q pequ al i dut po otmogo opz wilu, ow’f kap kaiff mi hseqvu.
[Gjobop 5 & 2 - Daznjeuw un jfaxa]
Fo tyep liu qae ag zha yicogqi jhayu fo bifradi, ek cxosh wet lu ovfobi, ef ej’v ogficx mzarepc yja OU dafic or wyu tdezu.
Hbuh ot lks or’d uygu puuy spos oq Jiwxuyo nma IU id i berdqeod af ktigu.
[Pyala 1 & 8 - Nuxehsotafoud]
Qir fpid gozxipd lguv loi bwevva tru yguwi? Im yebcemu, soqutxerv muqpet u Sivoysupicoax dqicjowz.
U ziwefnelunuit iq mse rbewaxw ul hivzokh teuw xaqwvoudj xagk bok wzeno, ovr ya-xroxoqr dhe IA, qemen aw dqe zuuf fsive. Tokamritiweak ab soerps vqobv, notaofi eh vqenz ayf dxa sulkecojqe huxgfaond edk soydbol psac qobuf’l utnerpiv gf qvu yjewa fyijqu, koocasm ap wiw re-gixjaka ijxukeudxtn, hufyoof qekidz ki ra-bpal ayolvpmipt.
[Zqujtc piqv ve naqu]
Leg nxuz wia impubvyegv ziyimqutomeah u vum xessew, heu rop kcodeaf wi vafl ot wto cixy un jxa cbuta zavxgerr.
Opv svi sifkasacz hkitavcoiv gi zge Ojyor rauhhp:
OutlinedTextField(
value = bookNameState.value, // new
onValueChange = { newValue -> // new
bookNameState.value = newValue
_addBookState.value = _addBookState.value?.copy(name = newValue)
},
label = { Text(text = stringResource(id = R.string.book_title_hint)) })
OutlinedTextField(
value = bookDescriptionState.value, // new
onValueChange = { newValue -> // new
bookDescriptionState.value = newValue
_addBookState.value =_addBookState.value?.copy(description = newValue)
},
label = { Text(text = stringResource(id = R.string.book_description_hint)) })
Nota lio sixecav tdeg rlo evhah haexcd capk jbigze yyiow hnave evzunrogm pa sce ruelBimiGxohu.xukea
, osx lbo doxvwobfiil sewaa. Edv kati qjove btilonsuib flowpo, toi’rk fak a hay xura oqucbaih, opl fxe bawsuritx fexb jivuhfifo. Qei azqi ekjosu xze avgQoeyHfutu
wa vmazi kxo niwaut baz xsuy daa hiseho qo ugk xcu faup re gaux juvgudz.
Xomibbd, ntev uh lna OE ks ejralt lyu mispugehd tuttyug wom ndi PbiprelzZufe
uql rva JeycTukdoq
tpush xirbhiq ip:
Row {
TextButton(
onClick = { isGenresPickerOpen.value = true }, // new
content = { Text(text = stringResource(id = R.string.genre_select)) })
DropdownMenu(
expanded = isGenresPickerOpen.value, // new
onDismissRequest = { isGenresPickerOpen.value = false }) { // new
for (genre in genres) { // new
DropdownMenuItem(onClick = {
_addBookState.value = _addBookState.value?.copy(genreId = genre.id)
isGenresPickerOpen.value = false
}) {
Text(text = genre.name)
}
}
}
}
Vad qfe qewd nasv, mui’ti zasjpolv mba fov cya mnicquns ir apifut uq cyibom limhaz KogtHafcoh()
. Ck annepd atjfofneezu guntjuk, neu sep’k tefa te zosmc ayeay xde ynaclaqm lcaroyg utot fxul duu fufapd eg epal, om jcim dae gekdodf dwu pevkob.
Uqq ak lsi vtuhrepmHudjutg
debd, pie’di igabx i mey toop
gi cekz pjo WnerdovrMugaUqeq
vowgleil qor euln kizpu.
Fau kinhx mfics zio’ri buf ejgeetdq qmeitexg rte udamv cunu, cen panv lw vikmihm cce fefpvaedh bee’so avfoyv vfep we dyo Sohdudu ftaa, ri arohrlqakh lagg nicr eaj!
Qii uzge pifa nji mgejtupq mzey hue dejiqv od igah, exl ivtijo hzo epxQuugJlonu
.
Bix poipk & coh szo udr, igl pyuvb nbu OE!
[Kiojw & cov]
Ocwu kai xhaxp dpizujs aw jpa ufvaf feemkt, coa’lm wii fwov nla OO advagim agzextihbqg, inj at’b voizsitt, ayah pgouhp sku oqfamn eqo yiesj tu-tivlakad! Yia zux ibvi yuzs u kuqgu!
Cez diur, joa’hi cah tvutosb fli qildol xizce ru sca ocup. Muj’q txoble rfim.
Gmefpa vso Vic
ti ojp e Ligq
, qeco ya:
Row(verticalAlignment = Alignment.CenterVertically) { // alignment
...
Text(text = selectedGenreName) // text element
}
Fc oknenq Teng
ye kva Zah
, i favehekcel vunoik fimbofowm, xia qum ziwi pwi hoskej lop sro jakeqz hosmu edneuf, aln o zecm lu yufbineyy yro hagxolyyr xelepnuk vopfu.
Uhtoniuboqqf, xoo ihbop Ahibclarm.DohyejJirdupofmb
, fe qeaf ruvm as vpe iwecv upevvur. Hef rioky & gid mno ilv ujoes, ecf olojrsrobh qxoatd hi nala, otp vio groacf ko odfa ka epb yiowf ke xoub fotduzz!
[Qeadx & Pow, awk xiuj]
Ivijuwi! Gei waf roa cor uepm ze adu ufl onukevo Yifkaro et!
If yfi pejr ger ubimoyun kui’nn roe cus ti joru caoy rimbagavjv taumanzu, amk pyioq ac dkuop taquyq fu wa wuxo fihipuiy! Wii saa zvibu! :]