Pengontrol navigasi adalah salah satu konsep utama dalam navigasi. File ini menyimpan grafik navigasi dan menampilkan metode yang memungkinkan aplikasi Anda bergerak di antara tujuan dalam grafik.
Saat menggunakan Komponen navigasi, Anda membuat pengontrol navigasi
menggunakan class NavController
. NavController
adalah API
navigasi pusat. API ini melacak tujuan yang telah dikunjungi pengguna, dan memungkinkan
pengguna berpindah antar-tujuan. Panduan ini menunjukkan cara membuat
NavController
di aplikasi Anda.
Untuk informasi 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 tinggi NavController
dalam hierarki composable. Nilainya
harus cukup tinggi sehingga semua composable yang perlu mereferensikannya dapat
melakukannya.
Dengan melakukannya, 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 Tampilan, Anda dapat mengambil NavController menggunakan salah satu 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 antar-tujuan dalam grafik navigasi Anda.