รางช่วยให้เข้าถึงปลายทางในแอปที่ทำงานบนอุปกรณ์ที่มีหน้าจอขนาดใหญ่ คุณควรใช้แถบนําทางในกรณีต่อไปนี้
- ปลายทางระดับบนสุดที่ต้องเข้าถึงได้จากทุกที่ในแอป
- จุดหมายหลัก 3-7 แห่ง
- เลย์เอาต์แท็บเล็ตหรือเดสก์ท็อป

หน้านี้จะแสดงวิธีแสดงรางในแอปด้วยหน้าจอที่เกี่ยวข้องและการนำทางพื้นฐาน
แพลตฟอร์ม API
ใช้ NavigationRail
ที่คอมโพสิเบิลกับ NavigationRailItem
เพื่อติดตั้งใช้งานรางในแอปพลิเคชัน NavigationRailItem
แสดงถึงรายการรางเดียวในคอลัมน์ราง
NavigationRailItem
มีพารามิเตอร์หลักต่อไปนี้
selected
: กำหนดว่ารายการโฆษณาแบบเรียลไทม์ปัจจุบันจะไฮไลต์ด้วยภาพหรือไม่onClick()
: ฟังก์ชัน Lambda ที่ต้องระบุซึ่งกําหนดการดําเนินการที่จะทําเมื่อผู้ใช้คลิกรายการโฆษณา โดยปกติแล้ว คุณจะจัดการเหตุการณ์การนําทาง อัปเดตสถานะรายการโฆษณาที่เลือก หรือโหลดเนื้อหาที่เกี่ยวข้องในส่วนนี้label
: แสดงข้อความภายในรายการโฆษณาแบบราง ไม่บังคับicon
: แสดงไอคอนภายในรายการราง ไม่บังคับ
ตัวอย่าง: การนําทางตามราง
ข้อมูลโค้ดต่อไปนี้ใช้แถบข้างสำหรับไปยังส่วนต่างๆ เพื่อให้ผู้ใช้ไปยังหน้าจอต่างๆ ในแอปได้
@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) } }
ข้อมูลสำคัญ
NavigationRail
แสดงคอลัมน์แนวตั้งของรายการราง โดยแต่ละรายการจะสอดคล้องกับDestination
val navController = rememberNavController()
จะสร้างและจดจําNavHostController
ขึ้นมา ซึ่งจะจัดการการนําทางภายในNavHost
var selectedDestination by rememberSaveable { mutableIntStateOf(startDestination.ordinal) }
จัดการสถานะของรายการรางที่เลือกอยู่ในปัจจุบันstartDestination.ordinal
รับดัชนีตัวเลข (ตำแหน่ง) ของรายการ enumDestination.SONGS
- เมื่อคลิกรายการในแถบ
navController.navigate(route = destination.route)
จะเรียกให้ไปยังหน้าจอที่เกี่ยวข้อง onClick
lambda ของNavigationRailItem
จะอัปเดตสถานะselectedDestination
เพื่อไฮไลต์รายการในแถบโฆษณาที่คลิกให้เห็น- โดยจะเรียกใช้คอมโพสิชัน
AppNavHost
โดยส่งnavController
และstartDestination
เพื่อแสดงเนื้อหาจริงของหน้าจอที่เลือก
ผลลัพธ์
รูปภาพต่อไปนี้แสดงผลลัพธ์ของข้อมูลโค้ดก่อนหน้า
