Sobes.tech
Middle

Kako implementirati korisnički interfejs u Androidu bez korišćenja XML-a?

sobes.tech АИ

Одговор од АИ

Možemo koristiti Kotlin/Java kod za programatsko kreiranje i dodavanje View i ViewGroup.

Primer kreiranja TextView:

// Kreiranje TextView u kodu
val textView = TextView(context)
// Postavljanje svojstava
textView.text = "Zdravo, svet!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER

// Dodavanje TextView u ViewGroup (npr. LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)

// Postavljanje korenskog layout-a
setContentView(linearLayout)

Za složenije interfejse koristi se "programatsko" kreiranje layout-a, kombinujući različite ViewGroup i View elemente.

Prednosti:

  • Dinamičko kreiranje UI na osnovu podataka ili logike.
  • Preciznija kontrola nad kreiranjem komponenti.
  • Teoretski može biti malo brže, jer izbegava XML parsiranje.

Nedostaci:

  • Kod postaje manje čitljiv i veći za složene layout-e.
  • Teško je vizualizovati layout bez pokretanja aplikacije.
  • Nedostatak praktičnih alata za preglede, kao u XML.

U modernim pristupima, kao što je Jetpack Compose (koji koristi Kotlin), kreiranje UI je potpuno deklarativno u kodu, zamenjujući XML.

Evo primera u Jetpack Compose:

// U @Composable funkciji definišemo UI
@Composable
fun Greeting(name: String) {
    Text(text = "Zdravo, $name!")
}

// Koristimo ovu funkciju u Activity
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Greeting("Svet")
        }
    }
}