Sobes.tech
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")
        }
    }
}