<?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: ```kotlinval linearLayout = LinearLayout(context).apply { orientation = LinearLayout.VERTICAL layoutParams = LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT )}
// TextView eklemeval textView = TextView(context).apply { text = "Merhaba Dünya!"}linearLayout.addView(textView)
// Activity'de kullanımsetContentView(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