Düzen kaynağı

Düzen kaynakları, Activity veya kullanıcı arayüzünün bir bileşenindeki kullanıcı arayüzünün mimarisini tanımlar.

dosya konumu:
res/layout/filename.xml
Dosya adı, kaynak kimliği olarak kullanılır.
derlenmiş kaynak veri türü:
View (veya alt sınıf) kaynağına giden kaynak işaretçisi
kaynak referansı:
Java'da: R.layout.filename
XML'de: @[package:]layout/filename
söz dizimi:
<?xml version="1.0" encoding="utf-8"?>
<ViewGroup
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@[+][package:]id/resource_name"
    android:layout_height=["dimension" | "match_parent" | "wrap_content"]
    android:layout_width=["dimension" | "match_parent" | "wrap_content"]
    [ViewGroup-specific attributes] >
    <View
        android:id="@[+][package:]id/resource_name"
        android:layout_height=["dimension" | "match_parent" | "wrap_content"]
        android:layout_width=["dimension" | "match_parent" | "wrap_content"]
        [View-specific attributes] >
        <requestFocus/>
    </View>
    <ViewGroup >
        <View />
    </ViewGroup>
    <include layout="@layout/layout_resource"/>
</ViewGroup>

Not: Kök öğe ViewGroup, View veya <merge> öğesi olabilir. Ancak yalnızca bir kök öğe olabilir ve önceki söz dizimi örneğinde gösterildiği gibi android namespace ile xmlns:android özelliğini içermelidir.

öğeler:
<ViewGroup>
Diğer View öğeleri için bir kapsayıcı. Birçok farklı türde ViewGroup nesnesi bulunur. Bunların her biri, alt öğelerin düzenini farklı şekillerde belirtmenize olanak tanır. Farklı ViewGroup nesne türleri arasında LinearLayout, RelativeLayout ve FrameLayout bulunur.

ViewGroup türevinin iç içe görünümleri kabul ettiğini varsaymayın. Bazı görünüm grupları, alt öğelerini yalnızca Adapter öğesinden belirleyen AdapterView sınıfının uygulamalarıdır.

Özellikler:

android:id
Kaynak Kimliği. Öğe için benzersiz bir kaynak adı. Bu adı, uygulamanızdan ViewGroup öğesine referans almak için kullanabilirsiniz. Daha fazla bilgi için android:id değeri bölümüne bakın.
android:layout_height
Boyut veya anahtar kelime. Zorunludur. Grubun boyut değeri (veya boyut kaynağı) ya da anahtar kelime ("match_parent" ya da "wrap_content") olarak yüksekliği. Daha fazla bilgi için android:layout_height ve android:layout_width değerleri bölümünü inceleyin.
android:layout_width
Boyut veya anahtar kelime. Zorunludur. Boyut değeri (veya boyut kaynağı) ya da anahtar kelime ("match_parent" ya da "wrap_content") olarak grubun genişliği. Daha fazla bilgi için android:layout_height ve android:layout_width değerleri bölümüne bakın.

ViewGroup temel sınıfı daha fazla özelliği destekler. Ayrıca, her ViewGroup uygulamasıyla çok daha fazla özellik desteklenir. Kullanılabilir tüm özelliklerin referansı için ViewGroup sınıfının ilgili referans dokümanlarına bakın (ör. LinearLayout XML özellikleri).

<View>
Genellikle widget olarak adlandırılan bağımsız bir kullanıcı arayüzü bileşenidir. Farklı View nesne türleri arasında TextView, Button ve CheckBox bulunur.

Özellikler:

android:id
Kaynak Kimliği. Öğe için uygulamanızdan View referansı almak üzere kullanabileceğiniz benzersiz kaynak adı. Daha fazla bilgi için android:id değeri bölümüne bakın.
android:layout_height
Boyut veya anahtar kelime. Zorunludur. Öğenin yüksekliği, boyut değeri (veya boyut kaynağı) ya da anahtar kelime ("match_parent" veya "wrap_content") olarak belirtilir. Daha fazla bilgi için android:layout_height ve android:layout_width değerleri bölümüne bakın.
android:layout_width
Boyut veya anahtar kelime. Zorunludur. Boyut değeri (veya boyut kaynağı) ya da anahtar kelime ("match_parent" ya da "wrap_content") olarak öğenin genişliği. Daha fazla bilgi için android:layout_height ve android:layout_width değerleri bölümüne bakın.

View temel sınıfı daha fazla özelliği destekler. Ayrıca, her View uygulamasıyla çok daha fazla özellik desteklenir. Daha fazla bilgi için Düzenler başlıklı makaleyi inceleyin. Mevcut tüm özelliklere referans için ilgili referans belgelerine (ör. TextView XML özellikleri) bakın.

<requestFocus>
Bir View nesnesini temsil eden tüm öğeler bu boş öğeyi içerebilir. Bu da öğenin ilk odağının ekrana gelmesini sağlar. Dosya başına bu öğelerden yalnızca birine sahip olabilirsiniz.
<include>
Bu düzene bir düzen dosyası ekler.

Özellikler:

layout
Düzen kaynağı. Zorunludur. Bir düzen kaynağına referans.
android:id
Kaynak Kimliği. Dahil edilen düzende kök görünüme verilen kimliği geçersiz kılar.
android:layout_height
Boyut veya anahtar kelime. Dahil edilen düzende kök görünüme verilen yüksekliği geçersiz kılar. Yalnızca android:layout_width de beyan edildiğinde geçerli olur.
android:layout_width
Boyut veya anahtar kelime. Dahil edilen düzende kök görünümüne verilen genişliği geçersiz kılar. Yalnızca android:layout_height de beyan edildiğinde geçerli olur.

Dahil edilen düzendeki kök öğe tarafından desteklenen diğer tüm düzen özelliklerini <include> öğesine ekleyebilirsiniz ve bunlar kök öğede tanımlanan özellikleri geçersiz kılar.

Dikkat: <include> etiketini kullanarak düzen özelliklerini geçersiz kılmak istiyorsanız diğer düzen özelliklerinin geçerli olması için hem android:layout_height hem de android:layout_width değerlerini geçersiz kılmanız gerekir.

Bir düzeni eklemenin bir başka yolu da ViewStub kullanmaktır. Bu, siz açıkça büyütene kadar düzen alanı tüketmeyen hafif bir görünümdür. Bu işlem, android:layout özelliğiyle tanımlanan bir düzen dosyası içerir. ViewStub kullanımı hakkında daha fazla bilgi için Görünümleri isteğe bağlı olarak yükleme bölümünü okuyun.

<merge>
Düzen hiyerarşisinde çizilmeyen alternatif bir kök öğe. Bu düzenin, <merge> öğesinin alt öğelerini içerecek uygun üst View öğesini içeren bir düzene yerleştirildiğini biliyorsanız kök öğe olarak bunu kullanmak yararlı olabilir.

Bu, özellikle bu düzeni <include> kullanarak başka bir düzen dosyasına eklemeyi planladığınız ve bu düzen için farklı bir ViewGroup kapsayıcısı gerekmediğinde yararlı olur. Düzenleri birleştirme hakkında daha fazla bilgi için Düzenleri <include> ile yeniden kullanma bölümünü okuyun.

android:id değeri

Kimlik değeri için genellikle aşağıdaki örnekte gösterildiği gibi "@+id/name" söz dizimi formunu kullanırsınız. Artı simgesi +, bunun yeni bir kaynak kimliği olduğunu belirtir ve aapt aracı, mevcut değilse R.java sınıfında yeni bir kaynak tam sayısı oluşturur.

<TextView android:id="@+id/nameTextbox"/>

nameTextbox adı artık bu öğeye eklenmiş bir kaynak kimliğidir. Daha sonra kimliğin Java'da ilişkilendirildiği TextView öğesine bakabilirsiniz:

Kotlin

val textView: TextView? = findViewById(R.id.nameTextbox)

Java

TextView textView = findViewById(R.id.nameTextbox);

Bu kod, TextView nesnesini döndürür.

Bununla birlikte, önceden bir kimlik kaynağı tanımladıysanız ve bu kaynak henüz kullanılmadıysa android:id değerinde artı simgesini hariç tutarak bu kimliği bir View öğesine uygulayabilirsiniz.

android:layout_height ve android:layout_width değerleri

Yükseklik ve genişlik değerleri, Android tarafından desteklenen boyut birimlerinden herhangi biri (piksel, dp, sp, pt, in, mm) kullanılarak veya aşağıdaki anahtar kelimelerle ifade edilir:

DeğerAçıklama
match_parent Boyutu, üst öğenin boyutuyla eşleşecek şekilde ayarlar. fill_parent API'sini kullanımdan kaldırmak için API düzeyi 8'e eklendi.
wrap_content Boyutu yalnızca bu öğenin içeriğini sığdırmak için gereken boyuta ayarlar.

Özel görünüm öğeleri

Özel View ve ViewGroup öğeleri oluşturabilir ve bunları, standart düzen öğesiyle aynı düzeninize uygulayabilirsiniz. XML öğesinde desteklenen özellikleri de belirtebilirsiniz. Daha fazla bilgi için Özel görünüm bileşenleri oluşturma bölümüne bakın.

örnek:
XML dosyasının res/layout/main_activity.xml konumuna kaydedildi:
<?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:orientation="vertical" >
    <TextView android:id="@+id/text"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:text="Hello, I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Hello, I am a Button" />
</LinearLayout>

Bu uygulama kodu, onCreate() yönteminde bir Activity için düzeni yükler:

Kotlin

public override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)
}

Java

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
}
ayrıca bakın: