Sobes.tech
Junior

Көп экрандарды кандай байланыштыруу керек?

sobes.tech AI

AIден жооп

NavComponent (жол картасы компоненти) Android Jetpack-тан:

  • Fragment Nav Component: Фрагменттерге негізделген қосымшалар үшін. Навигация графын анықтайды, оның ішінде мақсаттар (экрандар) және әрекеттер (өту жолдары):
  • Navigation Actions: Бір мақсаттан екіншісіне қалай өту керектігін анықтайды. Аргументтерді қамтуы мүмкін:
  • Safe Args: Gradle-плагин, ол типтік қауіпсіз навигацияны қамтамасыз ететін кодты генерациялайды:
  • Navigation Graph: XML ресурсы, ол барлық мақсаттар мен олардың арасындағы байланыстарды сипаттайды:
<!-- res/navigation/nav_graph.xml -->
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
    app:startDestination="@id/homeFragment">

    <fragment
        android:id="@+id/homeFragment"
        android:name="com.example.HomeFragment"
        android:label="Home"
        tools:layout="@layout/fragment_home">
        <action
            android:id="@+id/action_homeFragment_to_detailFragment"
            app:destination="@id/detailFragment" />
    </fragment>

    <fragment
        android:id="@+id/detailFragment"
        android:name="com.example.DetailFragment"
        android:label="Detail"
        tools:layout="@layout/fragment_detail">
        <argument
            android:name="itemId"
            app:argType="integer" />
    </fragment>
</navigation>
// Safe Args пайдаланып өту
findNavController().navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(itemId = 123))

Алтернативалар (аздаған артықшылықтармен):

  • Intent: Классикалық әдіс, Activity-лер арасында өту үшін. Аз икемді және күрделі сценарийлерде басқару қиын.
  • FragmentTransaction: Фрагменттерді қолмен басқару үшін. Көп код талап етеді және қателіктерге бейім.
  • Арнайы шешімдер: Өздерінің экранды басқару жүйелері, жиі артық және күрделі.