Ako sa vykonáva navigácia v Android aplikáciách?
sobes.tech AI
Odpoveď od AI
Navigácia v Android aplikáciách môže byť realizovaná rôznymi spôsobmi, z ktorých najbežnejšie sú:
-
Navigačné komponenty (Navigation Component): Odporúčaný Google framework na implementáciu navigácie. Používa graf navigácie na opis všetkých obrazoviek a prechodov medzi nimi. Podporuje argumenty, hlboké odkazy, animácie prechodov.
// Príklad grafu navigácie <navigation xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/nav_graph" app:startDestination="@id/fragmentA"> <fragment android:id="@+id/fragmentA" android:name="com.example.myapp.FragmentA" android:label="Fragment A"> <action android:id="@+id/action_fragmentA_to_fragmentB" app:destination="@id/fragmentB" /> </fragment> <fragment android:id="@+id/fragmentB" android:name="com.example.myapp.FragmentB" android:label="Fragment B" /> </navigation>// Príklad prechodu s použitím Safe Args findNavController().navigate(R.id.action_fragmentA_to_fragmentB) -
Explicitné zámery (Explicit Intents): Používajú sa na spustenie konkrétneho komponentu (Activity, Service, BroadcastReceiver), buď v aktuálnej aplikácii, alebo v inej.
// Príklad spustenia Activity val intent = Intent(this, SettingsActivity::class.java) startActivity(intent) -
Nepriame zámery (Implicit Intents): Vyhlasujú akciu, ktorú je potrebné vykonať, a údaje, s ktorými má byť táto akcia vykonaná. Android systém nájde vhodný komponent na spracovanie tohto zámery.
// Príklad otvorenia webovej stránky val webpage = Uri.parse("http://www.android.com") val intent = Intent(Intent.ACTION_VIEW, webpage) if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } -
Správa Back Stack-u: Android systém podporuje Back Stack (zásobník návratu), ktorý spravuje históriu navigácie. Tlačidlo "Späť" predvolene presunie používateľa na predchádzajúci bod v zásobníku.
-
BottomNavigationView: Komponent UI pre navigáciu medzi hlavnými destináciami v aplikácii.
-
DrawerLayout (Navigačný zásuvka): Bočný vysúvateľný panel s položkami menu pre navigáciu.
Každá metóda má svoje výhody a scenáre použitia. Navigation Component je preferovaná na správu navigácie medzi fragmentmi a aktivitami v rámci jednej aplikácie, zabezpečuje jednotný prístup a zjednodušuje prácu so zásobníkom návratu a argumentmi. Intent sa používajú na spustenie iných komponentov a interakciu s inými aplikáciami.