Sobes.tech
Middle

Ako implementovať používateľské rozhranie v Android bez použitia XML?

sobes.tech AI

Odpoveď od AI

Môžeme použiť kód Kotlin/Java na programové vytváranie a pridávanie View a ViewGroup.

Príklad vytvorenia TextView:

// Vytvorenie TextView v kóde
val textView = TextView(context)
// Nastavenie vlastností
textView.text = "Ahoj, svet!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER

// Pridanie TextView do ViewGroup (napríklad LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)

// Nastavenie koreňového layoutu
setContentView(linearLayout)

Pre zložitejšie rozhrania sa používa "programové" vytváranie layoutu, kombinovaním rôznych ViewGroup a View prvkov.

Výhody:

  • Dynamické vytváranie UI na základe dát alebo logiky.
  • Presnejšia kontrola nad tvorbou komponentov.
  • Teoreticky môže byť trochu rýchlejšie, pretože sa vyhýba XML parsovaniu.

Nevýhody:

  • Kód je menej čitateľný a rozmernejší pre zložité layouty.
  • Je ťažké vizualizovať layout bez spustenia aplikácie.
  • Chýbajú pohodlné nástroje na náhľad, ako v XML.

V moderných prístupoch, ako je Jetpack Compose (ktoré používa Kotlin), je tvorba UI úplne deklaratívna v kóde, nahradzujúc XML.

Príklad v Jetpack Compose:

// V @Composable funkcii definujeme UI
@Composable
fun Greeting(name: String) {
    Text(text = "Ahoj, $name!")
}

// Túto funkciu používame v Activity
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Greeting("Svet")
        }
    }
}