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: За ръчно управление на добавянето, премахването и замяната на фрагменти. Изисква повече код и е склонен към грешки.
- Собствени решения: Собствени реализации за управление на екрани, често излишно сложни.