Middle
Android'de XML kullanmadan kullanıcı arayüzü nasıl uygulanır?
sobes.tech yapay zeka
AI'dan gelen yanıt
Programatik olarak View ve ViewGroup oluşturmak ve eklemek için Kotlin/Java kodu kullanabiliriz.
TextView oluşturma örneği:
// Kodda TextView oluşturma
val textView = TextView(context)
// Özellikleri ayarlama
textView.text = "Merhaba, dünya!"
textView.textSize = 20f
textView.setTextColor(Color.BLACK)
textView.gravity = Gravity.CENTER
// TextView'yi ViewGroup'a ekleme (örneğin, LinearLayout)
val linearLayout = LinearLayout(context)
linearLayout.orientation = LinearLayout.VERTICAL
linearLayout.addView(textView)
// Kök layout'u ayarlama
setContentView(linearLayout)
Daha karmaşık arayüzler için, farklı ViewGroup ve View öğelerini birleştirerek "programatik" layout oluşturma kullanılır.
Avantajlar:
- Veriye veya mantığa dayalı dinamik UI oluşturma.
- Bileşenler üzerinde daha ince kontrol.
- XML'den analiz edilmediği için biraz daha hızlı olabilir.
Dezavantajlar:
- Kod, karmaşık düzenler için daha az okunabilir ve daha hacimli hale gelir.
- Uygulamayı çalıştırmadan düzeni görselleştirmek zordur.
- XML'deki gibi kullanışlı önizleme araçları yoktur.
Modern yaklaşımlarda, Kotlin kullanan Jetpack Compose gibi, UI tamamen deklaratif olarak kodda tanımlanır ve XML yerine geçer.
İşte Jetpack Compose'da bir örnek:
// @Composable fonksiyonunda UI tanımlıyoruz
@Composable
fun Greeting(name: String) {
Text(text = "Merhaba, $name!")
}
// Bu fonksiyonu Activity'de kullanıyoruz
class MainActivity : ComponentActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
Greeting("Dünya")
}
}
}