Sobes.tech
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")
        }
    }
}