vse Flashcards
Kaj so fragmenti
Deli uporabniskega vmesnika ki so vezani na aktivnosti. Omogočajo večkratno uporabo. Se dodajajo in odstranjujejo tekom izvajanja aktivnosti.
zivlenski cikel fragmenta
Ustvarjanje (onAttach, on Create, onCreateView, onViewCreated)
Postane viden (onStart, onResume)
Gre v ozadje (onPaused, onStop)
Uničenje(onDestroyView, onDestroy, onDeatch)
Funkcije živlenskega cikla
Ustvarimo s klicem konstruktorja ali s klicem funkcije newInstance
Izbrise se ko ni vec aktivne referencena objekt pobrise ga smetar.
Fragment manager skrbi za povezovanje konteksta in aktivnosti.
onAttach in onDetach skrbita za povezovanja fragmenta v kontekst
Izgled se določi v funkciji onCreateView potem pa lahko v onVIewCreated nastavimo posamezne akcije
Razlika med activity in fragment
inflate in binding se nastavi v onCreate pri fragmentih pa v metodi onCreateView in onViewCrated
Definiranje in prikaz fragmenta
Ustvarimo xml ki definira videz fragmenta
Ustvarimo nov razred ki je podedovan iz fragmenta in ustvari postavitev s klicem funkcije inflate
Ustvarimo nov instance fragmenta v aktivnosti
Z uporabo transakcije upravljalca fragmentov dodamo fragment
Upravljalec fragmentov
Skrbi za ustvarjanje, odstranjevanje in dodajanje in zamenjavo fragmentov. To so transakcije fragmentov
Za uspešno mora aktivnost vkljucevati container v kateri gosti aktivnosti. Pogosto je to prazen razvrscevalnik FrameLayout ki je odgovoren za določanje velikosti in umestitve fragmenta. Če je fragment statičen tega ne potrebujemo ampak ga dodamo v značko <fragment></fragment>
Navigacija
Ker ima android zapleten sistem za navigacijo so razvili navigacijsko komponento navigation ki poenostavlja izvajanje navigacije in omogoča vizualizacijo toka navigacije v aplikaciji
Prednosti:
samodejna obdelava transakcij fragmentov
Privzeto vedenje in podpora animacijam
Privzeto pravilno vodenje premikanja med posameznimi deli uporabniskega vmesnika
Graf navigacije
je konfiguracijska datoteka xml ki v osnovi definira zacetni fragment. Za definiranje cilja pa moramo dolociti se dodatne parametre - id, name, label, layout
NavHostFragment
Prevzame nadzor nad izgledom in mora zavzeti celoten zaslon. Definirati je potrebno navGraph in defaultNavHost
NavigationController
findNavController je objekt dostopen iz fragmenta ali aktivnosti. S funkcijo navigate lahko samodejno izvede startActivity ali pa izvede akcijo
ViewModel
Z njim shranjujemo in upravljamo podatke povezane z uporabniskim vmesnikom na nacin ki se uposteva zivljenski cikel komponent.
Naloge: priprava in upravlanje podatkov za aktivnosti ali fragmente
ohranja podatke ob spremembi nastavitve konfiguracije
skrbi za komunikacijo med uporabniskim vmesnikom in ostalo aplikacijo
Prednosti ViewModela
Omogočajo da se loci zivljenski cikel podatkov in logike od zivleskega cikla fragmenta ali aktivnosti
Povecanje modularnosti aplikacije
Olajsajo testiranje
LiveData
komponenta arhitekture Androida, ki omogoča opazovanje in obveščanje uporabniškega vmesnika o spremembah podatkov v realnem času.
Dobra praksa je da stanje objektov ne spreminjamo v fragmentih ampak v ViewModelu
Objavi in naroči
Podoben opazovalcu. Glavni cilj je komunikacija med objekti ki ustvari sporočilo in ga posreduje naročnikom
Sporočilo se posilja med objekti s pomocjo posrednika.
Opazovalec je implementiran sinhrono saj se takoj ob obvestilu obvestijo vsi opazovalci, narocnik pa asinhrono s pomocjo vrst sporocil.
Objavi naroči se uporablja za komunikacijo med aplikacijami ali locenimi moduli
EventBus
Poenostavlja komunikacijo med komponentami
Loči pošiljatelje in prejemnike dogodkov
hitra in majhna knjiznica