Middle
Ako implementovať používateľské rozhranie v Android bez použitia XML?
sobes.tech AI
Odpoveď od AI
Môžeme použiť kód Kotlin/Java na programové vytváranie a pridávanie View a ViewGroup.
Príklad vytvorenia TextView:
// Vytvorenie TextView v kóde
val textView = TextView(context)
// Nastavenie vlastností
textView.text = "Ahoj, svet!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER
// Pridanie TextView do ViewGroup (napríklad LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)
// Nastavenie koreňového layoutu
setContentView(linearLayout)
Pre zložitejšie rozhrania sa používa "programové" vytváranie layoutu, kombinovaním rôznych ViewGroup a View prvkov.
Výhody:
- Dynamické vytváranie UI na základe dát alebo logiky.
- Presnejšia kontrola nad tvorbou komponentov.
- Teoreticky môže byť trochu rýchlejšie, pretože sa vyhýba XML parsovaniu.
Nevýhody:
- Kód je menej čitateľný a rozmernejší pre zložité layouty.
- Je ťažké vizualizovať layout bez spustenia aplikácie.
- Chýbajú pohodlné nástroje na náhľad, ako v XML.
V moderných prístupoch, ako je Jetpack Compose (ktoré používa Kotlin), je tvorba UI úplne deklaratívna v kóde, nahradzujúc XML.
Príklad v Jetpack Compose:
// V @Composable funkcii definujeme UI
@Composable
fun Greeting(name: String) {
Text(text = "Ahoj, $name!")
}
// Túto funkciu používame v Activity
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Svet")
}
}
}