BottomNavigationMenu
NavigationUIpastki navigatsiyani ham boshqarishi mumkin. Agar foydalanuvchi menyu elementini tanlasa, NavControllerqo'ng'iroq qiladi onNavDestinationSelected() va tanlangan elementni pastki navigatsiya panelida avtomatik ravishda yangilaydi.
Shakl 4. Pastki navigatsiya paneli.
Ilovangizda pastki navigatsiya panelini yaratish uchun avval asosiy faoliyatingizda satrini belgilang, quyida ko'rsatilgandek:
...
android:id="@+id/nav_host_fragment"
... />
android:id="@+id/bottom_nav"
app:menu="@menu/menu_bottom_nav" />
Keyin, asosiy mashg'ulot sinfingizda, quyida ko'rsatilgandek, setupWithNavController() asosiy mashg'ulot onCreate()usulidan qo'ng'iroq qiling :
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.activity_main);
...
NavHostFragment navHostFragment = supportFragmentManager.findFragmentById(R.id.nav_host_fragment);
NavController navController = navHostFragment.getNavController();
BottomNavigationView bottomNav = findViewById(R.id.bottom_nav);
NavigationUI.setupWithNavController(bottomNav, navController);
}
Bilan o'zaro aloqada bo'lish NavController - yo'nalishlar o'rtasida harakatlanishning asosiy usuli. NavController Mazmunini almashtirish uchun mas'ul bo'lgan NavHost yangi joyga bilan. Ko'pgina hollarda, interfeys elementlari, masalan, yuqori ilovalar paneli yoki shunga o'xshash boshqa doimiy navigatsiya boshqaruvlari BottomNavigationBartashqarida yashaydi NavHostva yo'nalishlar bo'ylab harakatlanayotganda yangilanishi kerak.
NavControllertakliflar bir OnDestinationChangedListenerdeb ataladi interfeysi qachon NavController'p joriy manzil yoki uning vajlari o'zgartirish. Metod orqali yangi tinglovchini ro'yxatdan o'tkazish mumkin addOnDestinationChangedListener() . Qo'ng'iroq qilishda addOnDestinationChangedListener(), agar mavjud manzil mavjud bo'lsa, darhol tinglovchingizga yuborilishini unutmang.
NavigationUIfoydalanish OnDestinationChangedListenerUshbu umumiy UI qismlariga navigatsiya-xabardor qilish. Shunga qaramay, siz o'zingiz xohlagan foydalanuvchi OnDestinationChangedListenerinterfeysi yoki biznes mantig'ini navigatsiya hodisalari to'g'risida xabardor qilish uchun foydalanishingiz mumkinligiga e'tibor bering .
Misol tariqasida, siz o'zingizning ilovangizning ba'zi joylarida boshqalarga yashirgan holda ko'rsatmoqchi bo'lgan umumiy UI elementlariga ega bo'lishingiz mumkin. O'zingiznikidan foydalanib, OnDestinationChangedListenerushbu UI elementlarini quyidagi misolda ko'rsatilgandek, maqsadga qarab tanlab ko'rsatishingiz yoki yashirishingiz mumkin:
navController.addOnDestinationChangedListener(new NavController.OnDestinationChangedListener() {
@Override
public void onDestinationChanged(@NonNull NavController controller,
@NonNull NavDestination destination, @Nullable Bundle arguments) {
if(destination.getId() == R.id.full_screen_destination) {
toolbar.setVisibility(View.GONE);
bottomNavigationView.setVisibility(View.GONE);
} else {
toolbar.setVisibility(View.VISIBLE);
bottomNavigationView.setVisibility(View.VISIBLE);} }});
Do'stlaringiz bilan baham: |