Middle
Kuidas rakendada kasutajaliidest Androidis ilma XML-ita?
sobes.tech AI
Vastus AI-lt
Me kasutame Kotlin/Java koodi, et programmeerimisviisil luua ja lisada View ja ViewGroup.
Näide TextView loomise kohta:
// TextView loomine koodiga
val textView = TextView(context)
// Omaduste seadistamine
textView.text = "Tere, maailm!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER
// TextView lisamine ViewGroup-i (näiteks LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)
// Põhise paigutuse seadistamine
setContentView(linearLayout)
Raskeimate kasutajaliideste puhul kasutatakse "programmaatiliselt" paigutuse loomist, kombineerides erinevaid ViewGroup ja View elemente.
Eelised:
- UI dünaamiline loomine andmete või loogika põhjal.
- Täpsem kontroll komponentide loomise üle.
- Teoreetiliselt võib olla veidi kiirem, kuna XML-i parsimine puudub.
Miinused:
- Kood muutub vähem loetavaks ja keerulisemaks keerukamate paigutuste puhul.
- Paigutuse visualiseerimine ilma rakenduse käivitamiseta on keeruline.
- Puuduvad mugavad eelvaatamise tööriistad, nagu XML-i puhul.
Tänapäevastes lähenemistes, näiteks Jetpack Compose (mis kasutab Kotlinit), on UI täielikult deklaratiivne ja kirjeldatakse koodis, asendades XML.
Siin on näide Jetpack Compose'ist:
// @Composable funktsioonis määratleme UI
@Composable
fun Greeting(name: String) {
Text(text = "Tere, $name!")
}
// Selle funktsiooni kasutamine Activitys
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Maailm")
}
}
}