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