Sobes.tech
Middle

Jak implementovat uživatelské rozhraní v Androidu bez použití XML?

sobes.tech AI

Odpověď od AI

Můžeme použít kód Kotlin/Java k programovému vytváření a přidávání View a ViewGroup.

Příklad vytvoření TextView:

// Vytvoření TextView v kódu
val textView = TextView(context)
// Nastavení vlastností
textView.text = "Ahoj, světe!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER

// Přidání TextView do ViewGroup (například LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)

// Nastavení kořenového layoutu
setContentView(linearLayout)

Pro složitější rozhraní se používá "programové" vytváření layoutu, kombinováním různých ViewGroup a View prvků.

Výhody:

  • Dynamické vytváření UI na základě dat nebo logiky.
  • Preciznější kontrola nad vytvářením komponent.
  • Teoreticky může být trochu rychlejší, protože se neparsuje XML.

Nevýhody:

  • Kód je méně čitelný a rozměrnější pro složité layouty.
  • Je těžké vizualizovat layout bez spuštění aplikace.
  • Chybí pohodlné nástroje pro náhled, jako v XML.

V moderních přístupech, jako je Jetpack Compose (které používá Kotlin), je tvorba UI zcela deklarativní v kódu, nahrazující XML.

Zde je příklad v Jetpack Compose:

// V @Composable funkci definujeme UI
@Composable
fun Greeting(name: String) {
    Text(text = "Ahoj, $name!")
}

// Tuto funkci používáme v Activity
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Greeting("Svět")
        }
    }
}