Sobes.tech
Middle

Jaké způsoby navigace v aplikaci existují kromě použití knihovny navigace?

sobes.tech AI

Odpověď od AI

  1. Explicitní záměry: Přechod mezi aktivitami pomocí startActivity().

    // Vytvoření záměru pro přechod na NewActivity
    val intent = Intent(this, NewActivity::class.java)
    // Přidání dat do záměru
    intent.putExtra("data_key", "nějaká hodnota")
    // Spuštění nové aktivity
    startActivity(intent)
    
  2. Nejisté záměry: Spuštění aktivit z jiných aplikací nebo systémových částí.

    // Vytvoření záměru pro otevření webové stránky
    val webpage: Uri = Uri.parse("http://www.android.com")
    val webIntent = Intent(Intent.ACTION_VIEW, webpage)
    // Spuštění aktivity, která může tento záměr zpracovat
    startActivity(webIntent)
    
  3. DialogFragment: Použití dialogových oken pro zobrazení informací nebo získání vstupu od uživatele, které mohou vést k dalším akcím nebo zavření.

    // Vytvoření instance dialogového fragmentu
    val myDialogFragment = MyDialogFragment()
    // Zobrazení dialogu
    myDialogFragment.show(supportFragmentManager, "my_dialog")
    
  4. FragmentTransaction: Ruční správa životního cyklu fragmentů uvnitř aktivity: přidání, nahrazení, odstranění.

    // Získání FragmentManageru
    val fragmentManager = supportFragmentManager
    // Zahájení transakce
    val fragmentTransaction = fragmentManager.beginTransaction()
    // Nahrazení aktuálního fragmentu novým
    fragmentTransaction.replace(R.id.fragment_container, newFragment)
    // Přidání transakce do zásobníku zpět
    fragmentTransaction.addToBackStack(null)
    // Aplikace transakce
    fragmentTransaction.commit()
    
  5. Single-activity architektura s ruční správou fragmentů: Celá navigace je realizována uvnitř jedné aktivity pomocí změny zobrazovaných fragmentů. To je v podstatě strukturovanější využití FragmentTransaction.

  6. Vlastní View: Sestavení složité a nestandardní navigace pomocí vlastních View, které přepínají nebo mění obsah v závislosti na stavu aplikace.

Způsob navigace Hlavní mechanismus Výhody Nevýhody
Explicitní záměry Spuštění jiné aktivity podle třídy Jednoduchý přechod mezi aktivitami, přenos dat Složitější při více obrazovkách
Nejisté záměry Spuštění aktivity podle akce/dat Interakce s jinými aplikacemi Omezená flexibilita pro vnitřní navigaci
DialogFragment Zobrazení dialogového okna Jednoduché zobrazení modálních oken Není vhodné pro hlavní navigaci
FragmentTransaction Řízení životního cyklu fragmentu v Activity Flexibilní řízení UI Vyžaduje ruční správu zásobníku a stavu
Single-activity + Fragments Přepínání fragmentů v Activity Dobře se hodí pro aplikace s jednou obrazovkou Může být složité při velkém počtu obrazovek
Vlastní View Vlastní logika přepínání UI Maximální flexibilita a přizpůsobení Vyšší složitost vývoje a údržby