Middle
Kaip įgyvendinti naudotojo sąsają Android be XML naudojimo?
sobes.tech AI
Atsakymas iš AI
Galime naudoti Kotlin/Java kodą programiškai kurti ir pridėti View ir ViewGroup.
Pavyzdys, kaip sukurti TextView:
// TextView kūrimas kode
val textView = TextView(context)
// Savybių nustatymas
textView.text = "Labas, pasauli!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER
// Pridėti TextView į ViewGroup (pvz., LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)
// Nustatyti pagrindinį layout
setContentView(linearLayout)
Daug sudėtingesniems interfeisams naudojama "programinė" layout kūrimo metodas, jungiant įvairius ViewGroup ir View elementus.
Privalumai:
- Dinamiškai kurti UI remiantis duomenimis ar logika.
- Tikslesnė kontrolė komponentų kūrime.
- Teoriškai gali būti šiek tiek greičiau, nes nėra XML analizės.
Trūkumai:
- Kodo skaitymas tampa sudėtingesnis ir ilgesnis sudėtingiems layoutams.
- Sunku vizualizuoti layout'ą be programos paleidimo.
- Trūksta patogių peržiūros įrankių, kaip XML.
Moderniuose požiūriuose, kaip Jetpack Compose (naudojantis Kotlin), UI yra visiškai deklaratyvus ir pakeičia XML.
Pavyzdys Jetpack Compose:
// @Composable funkcijoje apibrėžiame UI
@Composable
fun Greeting(name: String) {
Text(text = "Labas, $name!")
}
// Naudojame šią funkciją Activity
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Pasaulis")
}
}
}