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ğer | Açı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:
-