Jak je zajištěna navigace v Android aplikacích?
sobes.tech AI
Odpověď od AI
Navigace v Android aplikacích může být realizována různými způsoby, z nichž nejběžnější jsou:
-
Navigační komponenty (Navigation Component): Doporučený Google framework pro implementaci navigace. Používá navigační graf k popisu všech obrazovek a přechodů mezi nimi. Podporuje argumenty, hluboké odkazy, přechodové animace.
// Příklad navigačního grafu <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>// Příklad přechodu s použitím Safe Args findNavController().navigate(R.id.action_fragmentA_to_fragmentB) -
Explicitní záměry (Explicit Intents): Používají se k spuštění konkrétního komponentu (Activity, Service, BroadcastReceiver), buď v aktuální aplikaci, nebo v jiné.
// Příklad spuštění Activity val intent = Intent(this, SettingsActivity::class.java) startActivity(intent) -
Implicitní záměry (Implicit Intents): Vyhlašují akci, kterou je třeba vykonat, a data, s nimiž má být tato akce provedena. Android systém najde vhodný komponent pro zpracování tohoto záměru.
// Příklad otevření webové 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 Stacku: Android systém podporuje Back Stack (zásobník návratu), který spravuje historii navigace. Tlačítko "Zpět" standardně přesune uživatele na předchozí položku ve zásobníku.
-
BottomNavigationView: UI komponenta pro navigaci mezi hlavními destinacemi v aplikaci.
-
DrawerLayout (Navigační zásuvka): Boční vysouvací panel s položkami menu pro navigaci.
Každá metoda má své výhody a scénáře použití. Navigation Component je preferována pro správu navigace mezi fragmenty a aktivitami v rámci jedné aplikace, poskytuje jednotný přístup a zjednodušuje práci se zásobníkem návratu a argumenty. Intent jsou používány k spuštění jiných komponent a interakci s jinými aplikacemi.