Junior
Bir uygulamada birden fazla ekran nasıl bağlanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Android Jetpack'ten NavComponent (navigasyon bileşeni).
- Fragment Nav Component: Fragment tabanlı uygulamalar için. Hedefleri (ekranlar) ve eylemleri (geçişler) içeren bir gezinme grafiği tanımlar.
- Navigation Actions: Bir hedeften diğerine nasıl geçileceğini belirler. Argümanlar içerebilir.
- Safe Args: Argümanlarla tip güvenli navigasyonu sağlayan kod üreten Gradle eklentisi.
- Navigation Graph: Tüm hedefleri ve bağlantılarını tanımlayan XML kaynağı.
<!-- 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 kullanarak gezinme
findNavController().navigate(HomeFragmentDirections.actionHomeFragmentToDetailFragment(itemId = 123))
Alternatifler (daha az tercih edilenler):
- Intent: Activityler arasında geçiş için klasik yöntem. Daha az esnek ve karmaşık durumlarda yönetimi zordur.
- FragmentTransaction: Fragmentlerin manuel eklenmesi, kaldırılması ve değiştirilmesi. Daha fazla kod gerektirir ve hata yapma olasılığı yüksektir.
- Özel çözümler: Ekran yönetimi için kendi uygulamalarınız, genellikle gereksiz derecede karmaşıktır.