Hogyan történik a navigáció az Android alkalmazásokban?
sobes.tech MI
Válasz az MI-től
Az Android-alkalmazások navigációja különböző módokon valósítható meg, amelyek közül a leggyakoribbak a következők:
-
Navigációs komponensek (Navigation Component): A Google ajánlott keretrendszere a navigáció megvalósítására. Navigációs gráfot használ az összes képernyő és közötti átmenet leírására. Támogatja az argumentumokat, mély linkeket, átmeneti animációkat.
// Navigációs gráf példa <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>// Safe Args használatával történő átmenet példa findNavController().navigate(R.id.action_fragmentA_to_fragmentB) -
Explicit Intents (Kifejezett szándékok): Egy adott komponens (Activity, Service, BroadcastReceiver) indítására használják, akár ugyanazon az alkalmazáson belül, akár más alkalmazásban.
// Activity indítás példa val intent = Intent(this, SettingsActivity::class.java) startActivity(intent) -
Implicit Intents (Nem kifejezett szándékok): Olyan műveletet és adatokat írnak le, amelyeket végre kell hajtani. Az Android rendszer megtalálja a megfelelő komponenst az intent feldolgozására.
// Weboldal megnyitása példa val webpage = Uri.parse("http://www.android.com") val intent = Intent(Intent.ACTION_VIEW, webpage) if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } -
Back Stack kezelése: Az Android rendszer támogatja a Back Stack-et (visszalépési verem), amely a navigáció történetét kezeli. A "Vissza" gomb alapértelmezés szerint a verem előző elemére lép.
-
BottomNavigationView: Egy UI komponens az alkalmazás felső szintű célpontjai közötti navigációhoz.
-
DrawerLayout (Navigációs fiók): Oldalsó kihúzható panel menüpontokkal a navigációhoz.
Minden módszernek megvannak az előnyei és alkalmazási esetei. A Navigation Component előnyös a fragmentek és aktivitások közötti navigáció kezelésében egy alkalmazáson belül, egységes megközelítést és egyszerűbb visszalépést, valamint argumentumkezelést biztosítva. Az intentek más komponensek indítására és más alkalmazásokkal való interakcióra szolgálnak.