Sobes.tech
Junior

Ինչպես է կատարվում նավիգացիան 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-ի և արգումենտների աշխատանքը։ Ինտենտները օգտագործվում են այլ կոմպոնենտներ մեկնարկելու և այլ հավելվածների հետ փոխազդեցության համար։