Junior
Ce metode de navigare în Android cunoașteți?
sobes.tech AI
Răspuns de la AI
Există mai multe metode principale de navigare pe Android:
- Sus (Înapoi cu un nivel): De obicei implementat cu un buton cu săgeată în ActionBar/Toolbar. Întoarce utilizatorul la ecranul anterior în ierarhia logică a aplicației.
- Înapoi (Înapoi): Implementat cu butonul sistemului "Înapoi". Întoarce utilizatorul la ecranul anterior pe care l-a vizitat.
- Acasă (Acasă): Revenire la ecranul principal al aplicației sau dispozitivului.
- Link-uri profunde (Deep Links): Acces direct la un ecran sau resursă specifică din aplicație printr-un link. Pot fi create din surse externe (web, alte aplicații) sau în interiorul aplicației.
- Tavă de navigare (Navigation Drawer): Panou lateral glisant care conține link-uri către diferite secțiuni ale aplicației.
- Bară de navigare inferioară (Bottom Navigation Bar): Panou în partea de jos a ecranului, care permite comutarea rapidă între secțiunile principale ale aplicației.
Abordări principale pentru implementarea navigației:
- Utilizarea
startActivityForResultșionActivityResult: Mod vechi de a transmite date între activități. - Transmiterea datelor prin Extras în Intent: Mod simplu de a transmite date primitive și obiecte serializabile/parcels între activități.
FragmentTransaction: Gestionarea fragmentelor (adăugare, înlocuire, ștergere etc.) pentru navigare în interiorul unei activități.- Componenta de Navigare (Navigation Component): Biblioteca oficială de la Google, care simplifică implementarea navigației între diferite componente ale aplicației (Activity, Fragment, Vederi personalizate). Oferă un editor grafic pentru graficul de navigație, transferul de argumente și gestionarea stivei de întoarcere.
// Exemplu de navigare cu Navigation Component
findNavController().navigate(R.id.action_currentFragment_to_nextFragment)
// Transferul argumentelor cu Navigation Component
val bundle = Bundle()
bundle.putString("key", "value")
findNavController().navigate(R.id.action_currentFragment_to_nextFragment, bundle)