Raylar, büyük ekranlı cihazlarda çalışan uygulamalardaki hedeflere erişim sağlar. Gezinme raylarını şu amaçlarla kullanmalısınız:
- Bir uygulamanın herhangi bir yerinden erişilebilmesi gereken üst düzey hedefler
- Üç ila yedi ana hedef
- Tablet veya masaüstü düzenleri

Bu sayfada, uygulamanızda rayların ilgili ekranlarla ve temel gezinmeyle nasıl gösterileceği gösterilmektedir.
API yüzeyi
Uygulamanızda bir demiryolu uygulamak için NavigationRailItem
ile birlikte derlenebilen NavigationRail
öğesini kullanın. NavigationRailItem
, ray sütunundaki tek bir ray öğesini temsil eder.
NavigationRailItem
aşağıdaki temel parametreleri içerir:
selected
: Geçerli demiryolu öğesinin görsel olarak vurgulanıp vurgulanmayacağını belirler.onClick()
: Kullanıcı demiryolu öğesini tıkladığında gerçekleştirilecek işlemi tanımlayan zorunlu bir lambda işlevi. Genellikle gezinme etkinliklerini burada yönetir, seçili demiryolu öğesi durumunu günceller veya ilgili içeriği yüklersiniz.label
: Metni demiryolu öğesinde gösterir. İsteğe bağlıdır.icon
: Ray öğesinde bir simge gösterir. İsteğe bağlıdır.
Örnek: Ray tabanlı gezinme
Aşağıdaki snippet, kullanıcıların bir uygulamadaki farklı ekranlar arasında gezinebilmesi için bir gezinme çubuğu 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 biri birDestination
'a karşılık gelen dikey bir demiryolu öğesi sütunu gösterir.val navController = rememberNavController()
,NavHost
içindeki gezinmeyi yöneten birNavHostController
örneği oluşturup hatırlar.var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) }
, geçerli olarak seçili reklam sütunu öğesinin durumunu yönetir.startDestination.ordinal
,Destination.SONGS
enum girişinin sayısal dizinini (konumunu) alır.
- Bir demiryolu öğesi tıklandığında, ilgili ekrana gitmek için
navController.navigate(route = destination.route)
çağrılır. NavigationRailItem
öğesininonClick
lambdası, tıklanan demiryolu öğesini görsel olarak vurgulamak içinselectedDestination
durumunu günceller.- Seçilen ekranın asıl içeriğini görüntülemek için
AppNavHost
bileşenini çağırır venavController
ilestartDestination
parametrelerini iletir.
Sonuç
Aşağıdaki resimde önceki snippet'in sonucu gösterilmektedir:
