Sobes.tech
Middle

Cum se implementează o interfață de utilizator în Android fără utilizarea XML?

sobes.tech AI

Răspuns de la AI

Putem folosi cod Kotlin/Java pentru a crea și adăuga vizualizări și ViewGroup-uri programatic.

Exemplu de creare a TextView:

// Crearea TextView în cod
val textView = TextView(context)
// Setarea proprietăților
textView.text = "Salut, lume!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER

// Adăugarea TextView în ViewGroup (de exemplu, LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)

// Setarea layout-ului rădăcină
setContentView(linearLayout)

Pentru interfețe mai complexe, se folosește crearea "programatică" a layout-ului, combinând diferite ViewGroup și View.

Avantaje:

  • Crearea dinamică a UI-ului bazată pe date sau logică.
  • Control mai fin asupra componentelor.
  • Poate fi ușor mai rapid, deoarece nu există parsing XML.

Dezavantaje:

  • Codul devine mai puțin lizibil și mai voluminos pentru layout-uri complexe.
  • Este dificil să vizualizezi layout-ul fără a rula aplicația.
  • Lipsesc instrumente de previzualizare convenabile, ca în XML.

În abordări moderne, precum Jetpack Compose (care folosește Kotlin), crearea UI-ului este complet declarativă în cod, înlocuind XML.

Iată un exemplu în Jetpack Compose:

// Într-o funcție @Composable definim UI-ul
@Composable
fun Greeting(name: String) {
    Text(text = "Salut, $name!")
}

// Folosim această funcție în Activity
class MainActivity : ComponentActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContent {
            Greeting("Lume")
        }
    }
}