Pengontrol navigasi adalah salah satu konsep utama dalam navigasi. Pengontrol ini menyimpan grafik navigasi dan menampilkan metode yang memungkinkan aplikasi Anda berpindah antar-tujuan dalam grafik.
Saat menggunakan komponen Navigation, Anda membuat pengontrol navigasi
menggunakan class NavController
. NavController
adalah API
navigasi pusat. API ini melacak tujuan yang telah dikunjungi pengguna, dan memungkinkan
pengguna berpindah-pindah antar-tujuan. Panduan ini menunjukkan cara membuat
NavController
di aplikasi Anda.
Untuk informasi tentang cara menambahkan grafik navigasi ke NavController
, lihat
Mendesain grafik navigasi. NavController
menyediakan beberapa cara
untuk menavigasi ke tujuan dalam grafiknya. Untuk mengetahui selengkapnya, lihat Menavigasi ke
tujuan.
Compose
Untuk membuat NavController
saat menggunakan Jetpack Compose, panggil
rememberNavController()
:
val navController = rememberNavController()
Anda harus membuat NavController
tinggi dalam hierarki composable. Posisinya
harus cukup tinggi sehingga semua composable yang perlu mereferensikannya dapat
melakukannya.
Dengan begitu, Anda dapat menggunakan NavController
sebagai satu sumber tepercaya untuk
mengupdate composable di luar layar. Hal ini mengikuti prinsip
pengangkatan status.
View
Jika menggunakan framework UI View, Anda dapat mengambil NavController menggunakan salah satu dari metode berikut, bergantung pada konteksnya.
Kotlin:
Java:
NavHostFragment.findNavController(Fragment)
Navigation.findNavController(Activity, @IdRes int viewId)
Navigation.findNavController(View)
Biasanya, Anda akan mendapatkan NavHostFragment
terlebih dahulu, lalu mengambil
NavController
dari fragmen. Cuplikan berikut menunjukkan hal tersebut:
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();
Bacaan lebih lanjut
- Mendesain grafik navigasi: Panduan yang menjelaskan cara menambahkan grafik
ke
NavController
yang berisi semua tujuan di aplikasi Anda. - Menavigasi ke tujuan: Panduan yang menjelaskan cara menggunakan
NavController
untuk berpindah-pindah antar-tujuan dalam grafik navigasi Anda.