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")
}
}
}