Sobes.tech
Junior

Milyen navigációs módszereket ismer az Androidban?

sobes.tech MI

Válasz az MI-től

Az Androidon több fő navigációs módszer létezik:

  • Felfelé (egy szinttel feljebb): Általában az ActionBar/Toolbar nyíl gombjával valósítják meg. Visszavezeti a felhasználót az alkalmazás logikai hierarchiájában az előző képernyőre.
  • Vissza (Visszatérés): A rendszer "Vissza" gombjával valósítják meg. Visszavezeti a felhasználót az előzőleg meglátogatott képernyőre.
  • Kezdőlap (Home): Visszatérés az alkalmazás vagy az eszköz főképernyőjére.
  • Mélységi hivatkozások (Deep Links): Egy adott képernyőre vagy erőforrásra való közvetlen átjárás egy link segítségével. Külső forrásokból (web, más alkalmazások) vagy az alkalmazáson belül is létrehozhatók.
  • Navigációs fiók (Navigation Drawer): Oldalsó kihúzható panel, amely különböző szekciókra mutató linkeket tartalmaz.
  • Alsó navigációs sáv (Bottom Navigation Bar): Az képernyő alján található panel, amely lehetővé teszi az alkalmazás fő szekciói közötti gyors váltást.

A navigáció megvalósításának fő megközelítései:

  • startActivityForResult és onActivityResult használata: Régi módszer az adatok átadására aktivitások között.
  • Adatok átadása Intent Extras segítségével: Egyszerű módja primitív adatok és szériázható/parcellázható objektumok átadásának aktivitások között.
  • FragmentTransaction: Fragmentek kezelése (hozzáadás, csere, törlés stb.) az aktivitás belsejében.
  • Navigációs komponens (Navigation Component): A Google hivatalos könyvtára, amely megkönnyíti az alkalmazás különböző komponensei (Activity, Fragment, egyedi nézetek) közötti navigációt. Grafikus szerkesztőt kínál a navigációs gráfhoz, argumentumok átadásához és a visszacsatolási verem kezeléséhez.
// Navigáció példája Navigation Component segítségével
findNavController().navigate(R.id.action_currentFragment_to_nextFragment)

// Argumentumok átadása Navigation Component segítségével
val bundle = Bundle()
bundle.putString("key", "value")
findNavController().navigate(R.id.action_currentFragment_to_nextFragment, bundle)