Junior
Πώς συνδέουμε πολλά οθόνες σε μια εφαρμογή;
sobes.tech AI
Απάντηση από AI
Το NavComponent (συστατικό πλοήγησης) του Android Jetpack.
- Fragment Nav Component: Για εφαρμογές με βάση τα fragments. Ορίζει το γράφημα πλοήγησης με προορισμούς (οθόνες) και ενέργειες (μεταβάσεις).
- 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 ilə naviqasiya
findNavController().navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(itemId = 123))
Alternativlər (daha az tövsiyə olunur):
- Intent: Activity arasında keçid üçün klassik üsul. Daha az elastik və mürəkkəb ssenarilərdə idarə etmək çətindir.
- FragmentTransaction: Fragmentlərin əl ilə əlavə edilməsi, silinməsi və dəyişdirilməsi. Daha çox kod tələb edir və səhv etməyə meyllidir.
- Öz həllər: Ekranların idarə olunması üçün öz tətbiqləriniz, çox vaxt lazımsız mürəkkəbdir.