Junior
Androidda qanday navigatsiya usullarini bilasiz?
sobes.tech AI
AIdan javob
Androidda navigatsiya qilishning bir nechta asosiy usullari mavjud:
- Yuqoriga (bir bosqichga qaytish): Odatda ActionBar/Toolbar'dagi o'q tugmasi yordamida amalga oshiriladi. Foydalanuvchini ilovaning mantiqiy hierarhiyasidagi oldingi ekraniga qaytaradi.
- Orqaga (Qaytish): Sistem tugmasi "Orqaga" yordamida amalga oshiriladi. Foydalanuvchini tashrif buyurgan oldingi ekraniga qaytaradi.
- Bosh sahifa (Home): Ilovaning yoki qurilmaning asosiy ekraniga qaytish.
- Deep Links (Chuqur havolalar): Havola yordamida ilova ichidagi aniq ekran yoki resursga to'g'ridan-to'g'ri o'tish. Ular tashqi manbalardan (web, boshqa ilovalar) yoki ilova ichida yaratilishi mumkin.
- Navigatsiya shkafi (Navigation Drawer): Ilovaning turli bo'limlariga havolalar joylashgan yon panel.
- Pastki navigatsiya paneli (Bottom Navigation Bar): Ekranning pastki qismida joylashgan panel, ilovaning asosiy bo'limlari orasida tez o'tishni ta'minlaydi.
Navigatsiyani amalga oshirishning asosiy yondashuvlari:
startActivityForResultvaonActivityResultdan foydalanish: Aktivliklar o'rtasida ma'lumotlarni o'tkazish uchun eskirgan usul.- Intent Extras orqali ma'lumotlarni uzatish: Primitiv ma'lumotlar va seriyalash mumkin bo'lgan/parcella bo'ladigan obyektlarni o'rtasida o'tkazish uchun oddiy usul.
FragmentTransaction: Aktivlik ichida fragmentlarni (qo'shish, almashtirish, o'chirish va boshqalar) boshqarish.- Navigation Component: Google tomonidan rasmiy kutubxona bo'lib, ilovaning turli komponentlari (Activity, Fragment, Maxsus Views) o'rtasida navigatsiyani soddalashtiradi. Navigatsiya grafigi, argumentlarni uzatish va orqa yiginni boshqarish uchun grafik muharrir taqdim etadi.
// Navigation Component bilan navigatsiya misoli
findNavController().navigate(R.id.action_currentFragment_to_nextFragment)
// Navigation Component bilan argumentlarni uzatish
val bundle = Bundle()
bundle.putString("key", "value")
findNavController().navigate(R.id.action_currentFragment_to_nextFragment, bundle)