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ти колдойт, ал навигациянын тарыхын башкарат. "Кайтуу" баскычы автоматтык түрдө колдонуучуну стектин алдыңкы пунктүнө которот.

  • BottomNavigationView: UI компоненти, тиркемедеги жогорку деңгээлдеги максаттар арасында навигация үчүн.

  • DrawerLayout (Navigation Drawer): Жаактан чыгаруучу панель менен меню пункттары аркылуу навигация.

Ар бир ыкма өзүнүн артыкчылыктары жана колдонуу сценарийлери бар. Navigation Component — фрагменттер жана активиттер арасындагы навигацияны башкарууда артыкчылыктуу, бирдиктүү ыкма камсыз кылып, стек жана аргументтер менен иштөөнү жеңилдетет. Интенттер башка компоненттерди иштетүү жана башка тиркемелер менен өз ара аракеттенүү үчүн колдонулат.