เครื่องควบคุมการนำทางเป็นหนึ่งในแนวคิดหลักในการนำทาง โดยจะ เก็บกราฟการนำทางและแสดงเมธอดที่ช่วยให้แอปของคุณย้าย ระหว่างปลายทางในกราฟได้
เมื่อใช้คอมโพเนนต์การนำทาง คุณจะสร้างตัวควบคุมการนำทาง
โดยใช้คลาส NavController NavController เป็น API การนำทางส่วนกลาง โดยจะติดตามปลายทางที่ผู้ใช้เข้าชม และอนุญาตให้ผู้ใช้ย้ายไปมาระหว่างปลายทางต่างๆ ได้
คู่มือนี้แสดงวิธีสร้าง NavController ในแอป
ดูข้อมูลเกี่ยวกับวิธีเพิ่มกราฟการนำทางไปยัง NavController ได้ที่
ออกแบบกราฟการนำทาง NavController มีวิธีต่างๆ
ในการไปยังจุดหมายในกราฟ ดูข้อมูลเพิ่มเติมได้ที่ไปยัง
จุดหมาย
เขียน
หากต้องการสร้าง NavController เมื่อใช้ Jetpack Compose ให้เรียกใช้
rememberNavController()
val navController = rememberNavController()
คุณควรสร้าง NavController สูงในลำดับชั้นที่ประกอบได้ โดยต้องมีค่าสูงพอที่ Composable ทั้งหมดที่ต้องอ้างอิงจะทำได้
การทำเช่นนี้จะช่วยให้คุณใช้ NavController เป็นแหล่งข้อมูลที่ถูกต้องเพียงแหล่งเดียวสำหรับ
การอัปเดต Composable นอกหน้าจอ ซึ่งเป็นไปตามหลักการของ
การยกระดับสถานะ
ยอดดู
หากใช้เฟรมเวิร์ก UI ของ Views คุณจะเรียกข้อมูล NavController ได้ โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้ ทั้งนี้ขึ้นอยู่กับบริบท
Kotlin:
Java:
NavHostFragment.findNavController(Fragment)Navigation.findNavController(Activity, @IdRes int viewId)Navigation.findNavController(View)
โดยปกติแล้ว คุณจะได้รับ NavHostFragment ก่อน แล้วจึงเรียกข้อมูล
NavController จาก Fragment ข้อมูลโค้ดต่อไปนี้แสดงให้เห็นถึงการดำเนินการนี้
Kotlin
val navHostFragment =
supportFragmentManager.findFragmentById(R.id.nav_host_fragment) as NavHostFragment
val navController = navHostFragment.navController
Java
NavHostFragment navHostFragment =
(NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();
อ่านเพิ่มเติม
- ออกแบบกราฟการนำทาง: คำแนะนำโดยละเอียดเกี่ยวกับวิธีเพิ่มกราฟ
ไปยัง
NavControllerที่มีปลายทางทั้งหมดในแอป - ไปยังปลายทาง: คู่มือที่อธิบายรายละเอียดวิธีใช้
NavControllerเพื่อย้ายไปมาระหว่างปลายทางในกราฟการนำทาง