Düzen kaynağı

Düzen kaynağı, Activity veya bileşenlerine ayıralım.

dosya konumu:
res/layout/filename.xml

Dosya adı, kaynak kimliği olarak kullanılır.
derlenen kaynak veri türü:
Kaynak işaretçisini bir View (veya alt sınıf) kaynağına yönlendirin
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, bir ViewGroup, View veya <merge> öğesi olabilir, ancak yalnızca bir kök öğe olmalı ve bu öğe, android değerine sahip xmlns:android özelliğini içermelidir ad alanını kullanın.

öğeler:
<ViewGroup>
Diğer View öğelerinin kapsayıcısıdır. Pek çok her biri farklı ViewGroup nesne ekleyebilirsiniz. Bunların her biri alt öğelerin düzenini farklı şekillerde belirtin. Farklı türde ViewGroup nesne şunları içeriyor: LinearLayout, RelativeLayout ve FrameLayout.

Herhangi bir ViewGroup türevinin olduğunu varsaymayın iç içe görünümleri kabul eder. Bazı görünüm grupları ve bunların dönüşüm oranını belirleyen AdapterView sınıfının uygulamalarıdır. sadece Adapter içindeki alt öğeleridir.

Özellikler:

android:id
Kaynak Kimliği. Öğe için benzersiz bir kaynak adı. ile ilgili bilgileri kullanmanızı öneririz.ViewGroup Daha fazla android:id değeri bölümüne bakın.
android:layout_height
Boyut veya anahtar kelime. Zorunludur. Grubun yüksekliği boyut değeri (veya boyut kaynağı) veya bir anahtar kelime ("match_parent" veya "wrap_content"). Daha fazla bilgi için android:layout_height ve android:layout_width bölümüne ekleyin.
android:layout_width
Boyut veya anahtar kelime. Zorunludur. Grubun genişliği boyut değeri (veya boyut kaynağı) veya bir anahtar kelime ("match_parent" veya "wrap_content"). Daha fazla bilgi için android:layout_height ve android:layout_width bölümüne ekleyin.

ViewGroup temel sınıf daha fazla özelliği destekler ve çok daha fazlası, ViewGroup Mevcut tüm özelliklere ilişkin bir referans için ViewGroup sınıfı için ilgili referans belgelerine bakın. örneğin LinearLayout XML özellikleri hakkında daha fazla bilgi edinin.

<View>
Genellikle widget olarak adlandırılan bağımsız bir kullanıcı arayüzü bileşeni. Farklı View nesne türü şunları içerir: TextView, Button ve CheckBox.

Özellikler:

android:id
Kaynak Kimliği. Öğe için kullanabileceğiniz benzersiz bir kaynak adı başvurunuzda View ile ilgili referans edinin. Daha fazla android:id değeri bölümüne bakın.
android:layout_height
Boyut veya anahtar kelime. Zorunludur. Öğenin yüksekliği, bir boyut değeri (veya boyut kaynağı) veya bir anahtar kelime ("match_parent" veya "wrap_content"). Daha fazla bilgi için android:layout_height ve android:layout_width bölümüne ekleyin.
android:layout_width
Boyut veya anahtar kelime. Zorunludur. Öğenin genişliği, bir boyut değeri (veya boyut kaynağı) veya bir anahtar kelime ("match_parent" veya "wrap_content"). Daha fazla bilgi için android:layout_height ve android:layout_width bölümüne ekleyin.

View temel sınıf daha fazla özelliği destekler ve çok daha fazlası, View Daha fazla bilgi için Düzenler başlıklı makaleyi okuyun. Örneğin, tüm kullanılabilir özelliklerin bir referansı, İlgili referans belgeleri (ör. TextView XML özellikleri) inceleyin.

<requestFocus>
Bir View nesnesini temsil eden herhangi bir öğe bu boş öğeyi içerebilir. Bu, üst öğesinin ilk odağının ekrana gelmesini sağlar. Bunlardan yalnızca birini öğe olması gerekir.
<include>
Bu düzene bir düzen dosyası ekler.

Özellikler:

layout
Düzen kaynağı. Zorunludur. Düzene referans verme gösterir.
android:id
Kaynak Kimliği. Dahil edilen düzendeki kök görünümüne verilen kimliği geçersiz kılar.
android:layout_height
Boyut veya anahtar kelime. dahil edilen düzen. Yalnızca android:layout_width de belirtilmişse geçerlidir.
android:layout_width
Boyut veya anahtar kelime. dahil edilen düzen. Yalnızca android:layout_height de belirtilmişse geçerlidir.

<include> içine sizin için uygun olan diğer tüm düzen özelliklerini desteklenen düzendeki kök öğe tarafından desteklenir ve kök öğedir.

Dikkat: Düzen özelliklerini geçersiz kılmak için <include> etiketi için her ikisini de geçersiz kılmanız gerekir Şu işlem için android:layout_height ve android:layout_width: diğer düzen özelliklerinin geçerli olmasını sağlayın.

Düzen eklemenin bir başka yolu da ViewStub kullanmaktır: basit bir bir görünüm oluşturabilirsiniz. Bunu yaptığınızda, android:layout özelliği tarafından tanımlanan düzen dosyası. ViewStub kullanımı hakkında daha fazla bilgi için şu bölümü okuyun: Yükleme Görüntüleme sayısı (seç-izle video).

<merge>
Düzen hiyerarşisinde çizilmeyen alternatif bir kök öğe. Bunu bir kök öğe, bu düzenin bir düzene yerleştirildiğini bildiğinizde yararlıdır öğesini, alt öğelerini içerecek uygun üst View öğesini zaten içeren <merge> öğesi.

Bu, özellikle bu düzeni dahil etmeyi planladığınızda yararlıdır. <include> ve Bu düzen farklı bir ViewGroup kapsayıcısı gerektirmez. Daha fazla Düzenleri <include> ile yeniden kullanma hakkında bilgi edinin.

android:id değeri

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

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

nameTextbox adı artık bu öğeye eklenmiş bir kaynak kimliğidir. Ardından kimliğin Java'da ilişkilendirilen TextView bölümüne bakın:

Kotlin

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

Java

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

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

Ancak önceden bir kimlik kaynağı tanımladıysanız ve bu kaynak henüz tanımlanmamışsa önceden kullanılıyorsa o kimliği hariç tutarak bu kimliği bir View öğesine uygulayabilirsiniz. android:id değerinde artı simgesi.

android:layout_height ve android:layout_width

Yükseklik ve genişlik değerleri, boyut Android (px, dp, sp, pt, in, mm) tarafından desteklenen birimler:

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

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

Özel View ve ViewGroup oluşturabilirsiniz öğelerini düzenleyebilir ve bunları, standart bir düzenle aynı şekilde düzeninize uygulayabilirsiniz. öğesine dokunun. XML öğesinde desteklenen özellikleri de belirtebilirsiniz. Daha fazla bilgi için Özel görünüm bileşenleri oluşturma bölümünü inceleyin.

örnek:
XML dosyası res/layout/main_activity.xml itibarıyla 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, Activity için düzeni onCreate() yöntemi:

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 bkz.: