Kaip vyksta navigacija Android programose?
sobes.tech AI
Atsakymas iš AI
Navigacija Android programose gali būti įgyvendinta įvairiais būdais, iš kurių dažniausiai naudojami:
-
Navigacijos komponentai (Navigation Component): Google rekomenduojamas karkasas navigacijai įgyvendinti. Naudoja navigacijos grafiką visų ekranų ir jų tarpusavio perėjimų aprašymui. Palaiko argumentus, gilias nuorodas, perėjimo animacijas.
// Navigacijos grafiko pavyzdys <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>// Pavyzdys, kaip naudoti Safe Args perėjimui findNavController().navigate(R.id.action_fragmentA_to_fragmentB) -
Aiškūs intencijos (Explicit Intents): Naudojami konkrečiam komponentui (Activity, Service, BroadcastReceiver) paleisti, tiek toje pačioje programoje, tiek kitoje.
// Pavyzdys, kaip paleisti Activity val intent = Intent(this, SettingsActivity::class.java) startActivity(intent) -
Neaiškūs intencijos (Implicit Intents): Apibrėžia veiksmą, kurį reikia atlikti, ir duomenis, su kuriais šis veiksmas turi būti atliktas. Android sistema suranda tinkamą komponentą šiai intencijai apdoroti.
// Pavyzdys, kaip atidaryti interneto puslapį val webpage = Uri.parse("http://www.android.com") val intent = Intent(Intent.ACTION_VIEW, webpage) if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } -
Back Stack valdymas: Android sistema palaiko Back Stack (grįžimo krūvą), kuris valdo navigacijos istoriją. Mygtukas "Atgal" pagal numatytuosius nustatymus perkelia vartotoją į ankstesnį krūvos elementą.
-
BottomNavigationView: UI komponentas, skirtas navigacijai tarp pagrindinių tikslų programoje.
-
DrawerLayout (Navigacijos skydelis): Šoninė išsitraukianti panelė su meniu punktais navigacijai.
Kiekvienas metodas turi savo privalumus ir taikymo scenarijus. Navigation Component yra pageidaujamas fragmentų ir veiklos valdymui vienoje programoje, užtikrinant vieningą požiūrį ir palengvinant grįžtamojo krūvos bei argumentų valdymą. Intents naudojami kitų komponentų paleidimui ir sąveikai su kitomis programomis.