Junior
Kako povezati više ekrana u aplikaciji?
sobes.tech АИ
Одговор од АИ
Komponent NavComponent (komponent za navigaciju) iz Android Jetpack.
- Fragment Nav Component: Za aplikacije zasnovane na fragmentima. Definiše graf navigacije sa odredištima (ekranima) i akcijama (prelazima).
- Navigation Actions: Određuju kako preći sa jednog odredišta na drugo. Mogu sadržavati argumente.
- Safe Args: Gradle dodatak za generisanje koda koji obezbeđuje tipiziranu navigaciju sa argumentima.
- Navigation Graph: XML resurs koji opisuje sva odredišta i njihove veze.
<!-- 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>
// Navigacija sa Safe Args
findNavController().navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(itemId = 123))
Alternativno (manje preporučeno):
- Intent: Klasičan način za prelazak između Activity-ja. Manje fleksibilan i teže za upravljanje u složenijim scenarijima.
- FragmentTransaction: Za ručno upravljanje dodavanjem, uklanjanjem i zamenom fragmenata. Zahteva više koda i podložan je greškama.
- Svoja rešenja: Svoja implementacija za upravljanje ekranima, često nepotrebno složena.