Ինչպես է կատարվում նավիգացիան Android հավելվածներում?
sobes.tech AI
Պատասխան AI-ից
Նավիգացիան Android հավելվածներում կարող է իրականացվել տարբեր եղանակներով, որոնցից առավել տարածվածներն են՝
-
Նավիգացիոն կոմպոնենտներ (Navigation Component): Google-ի առաջարկած շրջանակը նավիգացիայի իրականացման համար։ Օգտագործում է նավիգացիայի գրաֆ՝ բոլոր էկրանների և նրանց միջև անցումների նկարագրության համար։ Պատրաստ է փոխանցել արգումենտներ, խորքային հղումներ, անցումների անիմացիաներ։
// Նավիգացիայի գրաֆի օրինակ <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 օգտագործելով անցումի օրինակ findNavController().navigate(R.id.action_fragmentA_to_fragmentB) -
Արագ ինտենտներ (Explicit Intents): Օգտագործվում են կոնկրետ կոմպոնենտի (Activity, Service, BroadcastReceiver) մեկնարկի համար՝ կամ նույն հավելվածում, կամ այլում։
// Activity մեկնարկի օրինակ val intent = Intent(this, SettingsActivity::class.java) startActivity(intent) -
Անհայտ ինտենտներ (Implicit Intents): Դեկլարատիվ են գործողությունը, որը պետք է կատարվի, և տվյալները, որոնց հետ պետք է կատարվի։ Android համակարգը գտնում է համապատասխան կոմպոնենտը։
// Վեբ էջ բացելու օրինակ val webpage = Uri.parse("http://www.android.com") val intent = Intent(Intent.ACTION_VIEW, webpage) if (intent.resolveActivity(packageManager) != null) { startActivity(intent) } -
Back Stack-ի կառավարում: Android համակարգը աջակցում է Back Stack-ին, որը կառավարում է նավիգացիայի պատմությունը։ "Վերադառնալ" կոճակը հիմնականում տեղափոխում է օգտվողին նախորդ կետը Stack-ում։
-
BottomNavigationView: UI կոմպոնենտ՝ նավիգացիայի համար վերևի մակարդակների միջև։
-
DrawerLayout (Navigation Drawer): Կողային սահող պանել՝ մենյու կետերով։
Յուրաքանչյուր մեթոդ ունի իր առավելությունները և կիրառման դեպքերը։ Navigation Component-ը նախընտրելի է՝ նավիգացիայի կառավարման համար՝ ֆրագմենտների և ակտիվիտների միջև՝ մեկ հավելվածում, ապահովելով միացյալ մոտեցում և հեշտացնելով Stack-ի և արգումենտների աշխատանքը։ Ինտենտները օգտագործվում են այլ կոմպոնենտներ մեկնարկելու և այլ հավելվածների հետ փոխազդեցության համար։