Sobes.tech
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:

  • startActivityForResult va onActivityResult dan 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)