Sütunlar, büyük ekranlı cihazlarda çalışan uygulamalardaki hedeflere erişim sağlar. Gezinme sütunlarını şu amaçlarla kullanmalısınız:
- Uygulamanın her yerinden erişilebilmesi gereken üst düzey hedefler
- Üç ila yedi ana hedef
- Tablet veya masaüstü düzenleri
Bu sayfada, ilgili ekranlar ve temel gezinme ile uygulamanızda rayların nasıl gösterileceği açıklanmaktadır.
API yüzeyi
Uygulamanızda sütun kullanmak için NavigationRailItem ile NavigationRail composable'ını kullanın. NavigationRailItem, ray sütunundaki tek bir ray öğesini temsil eder.
NavigationRailItem aşağıdaki temel parametreleri içerir:
selected: Geçerli ray öğesinin görsel olarak vurgulanıp vurgulanmayacağını belirler.onClick(): Kullanıcı, ray öğesini tıkladığında gerçekleştirilecek işlemi tanımlayan zorunlu bir lambda işlevi. Genellikle gezinme etkinliklerini işlediğiniz, seçili sütun öğesi durumunu güncellediğiniz veya ilgili içeriği yüklediğiniz yer burasıdır.label: Ray öğesindeki metni gösterir. İsteğe bağlı.icon: Ray öğesinde bir simge gösterir. İsteğe bağlı.
Örnek: Ray tabanlı gezinme
Aşağıdaki snippet, kullanıcıların bir uygulamadaki farklı ekranlar arasında gezinebilmesi için gezinme sütununu uygular:
@Composable fun NavigationRailExample(modifier: Modifier = Modifier) { val navController = rememberNavController() val startDestination = Destination.SONGS var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) } Scaffold(modifier = modifier) { contentPadding -> NavigationRail(modifier = Modifier.padding(contentPadding)) { Destination.entries.forEachIndexed { index, destination -> NavigationRailItem( selected = selectedDestination == index, onClick = { navController.navigate(route = destination.route) selectedDestination = index }, icon = { Icon( destination.icon, contentDescription = destination.contentDescription ) }, label = { Text(destination.label) } ) } } AppNavHost(navController, startDestination) } }
Önemli noktalar
NavigationRail, her öğenin birDestinationöğesine karşılık geldiği dikey bir ray öğeleri sütunu gösterir.val navController = rememberNavController(),NavHostiçinde gezinmeyi yöneten birNavHostControllerörneği oluşturur ve hatırlar.var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) }, seçilen ray öğesinin durumunu yönetir.startDestination.ordinal,Destination.SONGSenum girişinin sayısal dizinini (konumunu) alır.
- Bir ray öğesi tıklandığında ilgili ekrana gitmek için
navController.navigate(route = destination.route)çağrılır. NavigationRailItemöğesininonClicklambda'sı, tıklanan ray öğesini görsel olarak vurgulamak içinselectedDestinationdurumunu günceller.- Seçilen ekranın gerçek içeriğini görüntülemek için
navControllervestartDestinationdeğerlerini ileterekAppNavHostcomposable'ını çağırır.
Sonuç
Aşağıdaki resimde, önceki snippet'in sonucu gösterilmektedir: