<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:orientation="vertical" >
Buraya içinde kullanacağınız öğeleri ekleyin.
</LinearLayout>
**Kotlin'de LinearLayout**, Android uygulamalarında kullanıcı arayüzü (UI) bileşenlerini **yatay (horizontal)** veya **dikey (vertical)** olarak sıralamak için kullanılan bir düzen (layout) yapısıdır. Android'in `ViewGroup` sınıfından türetilir ve XML veya Kotlin/Java kodu ile oluşturulabilir. Temel amacı, bileşenleri tek bir satır veya sütunda hizala
**Temel Özellikleri ve İşlevleri**
1. **Yönlendirme (Orientation)**
- `android:orientation="horizontal"` veya `vertical` ile bileşenlerin nasıl sıralanacağı belirlenir.
- Örnek XML:
```xml
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
```
2. **Ağırlık (Weight)**
- `android:layout_weight` ile bileşenlere alan paylaşımı yapılır. Örneğin, iki butonun ekranı eşit oranda kaplaması sağlanabilir.
- Kotlin'de ağırlık atama:
```kotlin
val params = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT,
1.0f // Weight değeri
)
button.layoutParams = params
```
3. **Hizalama (Gravity)**
- `android:gravity`: İçeriklerin LinearLayout içinde nasıl hizalanacağını belirler (örn. `center`, `start`, `end`).
- `android:layout_gravity`: Bileşenin kendisinin üst View içinde nasıl hizalanacağını belirler.
---
**Kotlin ile LinearLayout Kullanımı**
XML yerine doğrudan Kotlin kodu ile LinearLayout oluşturmak için:
```kotlin
val linearLayout = LinearLayout(context).apply {
orientation = LinearLayout.VERTICAL
layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.MATCH_PARENT
)
}
// TextView ekleme
val textView = TextView(context).apply {
text = "Merhaba Dünya!"
}
linearLayout.addView(textView)
// Activity'de kullanım
setContentView(linearLayout)
```
---
**Kullanım Senaryoları**
1. **Basit UI Yapıları**
- Butonlar, metin kutuları veya resimlerin düz bir sıra halinde gösterilmesi.
2. **Eşit Alan Dağılımı**
- `layout_weight` ile bileşenlerin ekranı belirli oranlarda kaplaması (örn. 2:1 oranında iki metin kutusu).
3. **İç İçe Layout'lar**
- Karmaşık tasarımlar için birden fazla LinearLayout'u birleştirme.
---
**Sınırlamaları**
- **Derin Hiyerarşi**: İç içe çok fazla LinearLayout kullanımı performans sorunlarına yol açabilir.
- **Esneklik Eksikliği**: Karmaşık tasarımlar için `ConstraintLayout` veya `Compose` daha uygundur.
---
**Modern Alternatifler**
- **Jetpack Compose**: Kotlin tabanlı modern UI toolkit'inde `Row` ve `Column` kullanılır.
```kotlin
Column { // Dikey sıralama
Text("Merhaba")
Text("Dünya")
}
```
- **ConstraintLayout**: Karmaşık düzenler için daha esnek bir yapı sunar.
---
**Özetle**, LinearLayout basit ve hızlı UI tasarımları için idealdir, ancak karmaşık senaryolarda modern alternatifler tercih edilmelidir.
Hiç yorum yok:
Yorum Gönder