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")
}
}
}