يحدّد مورد التصميم بنية واجهة المستخدم في Activity
أو
المكون في واجهة المستخدم.
- مكان الملف:
res/layout/filename.xml
-
يتم استخدام اسم الملف كمعرّف المورد.
- نوع بيانات الموارد المجمّعة:
- مؤشر الموارد إلى مورد
View
(أو فئة فرعية)
- مرجع الموارد:
-
في Java:
R.layout.filename
في ملف XML: @[package:]layout/filename
- بناء الجملة:
-
<?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>
ملاحظة: يمكن أن يكون العنصر الجذر
ViewGroup
أو View
أو <merge>
، ولكن لا يمكن
عنصر جذر واحد ويجب أن يحتوي على السمة xmlns:android
التي تحتوي على android
مساحة الاسم كما هو موضح في مثال البنية السابق.
- العناصر:
-
<ViewGroup>
- وهي حاوية لعناصر
View
أخرى. هناك العديد من
أنواعًا مختلفة من كائنات ViewGroup
، ويتيح لك كل نوع منها
تحديد تخطيط العناصر الفرعية بطرق مختلفة. هناك أنواع مختلفة من
تشمل ViewGroup
كائنات LinearLayout
،
RelativeLayout
، وFrameLayout
.
لا تفترض أن أي اشتقاق لـ ViewGroup
وتقبل طرق عرض متداخلة. بعض مجموعات العرض
هي عمليات تنفيذ لفئة AdapterView
، والتي تحدد
عناصرها الثانوية فقط من Adapter
.
السمات:
android:id
- رقم تعريف المورد. اسم مورد فريد للعنصر، ويمكنك
استخدامها للحصول على مرجع إلى
ViewGroup
من تطبيقك. لمزيد من المعلومات،
المعلومات، راجِع القسم قيمة android:id.
android:layout_height
- السمة أو الكلمة الرئيسية. مَعلمة مطلوبة. يُعد ارتفاع المجموعة،
قيمة البُعد (أو
مصدر السمة) أو كلمة رئيسية
(
"match_parent"
أو "wrap_content"
) لمزيد من المعلومات
شاهد قيم android:layout_height
android:layout_width.
android:layout_width
- السمة أو الكلمة الرئيسية. مَعلمة مطلوبة. يُعد عرض المجموعة،
قيمة البُعد (أو
مصدر السمة) أو كلمة رئيسية
(
"match_parent"
أو "wrap_content"
) لمزيد من المعلومات
شاهد قيم android:layout_height
android:layout_width.
ViewGroup
تتيح الفئة الأساسية مزيدًا من السمات، كما تتوافق الكثير من السمات الأخرى مع كل عملية تنفيذ
ViewGroup
كمرجع لجميع السمات المتاحة،
اطّلِع على المستندات المرجعية ذات الصلة للفئة ViewGroup
،
على سبيل المثال، يتضمن ملف LinearLayout
XML
.
<View>
- هي مكوّن فردي لواجهة المستخدم، ويُشار إليه عمومًا باسم التطبيقات المصغّرة. مختلفة
تشمل أنواع
View
من الكائنات TextView
،
Button
، وCheckBox
.
السمات:
android:id
- رقم تعريف المورد. اسم مورد فريد للعنصر، يمكنك استخدامه
الحصول على مرجع إلى
View
من تطبيقك. لمزيد من المعلومات،
المعلومات، راجِع القسم قيمة android:id.
android:layout_height
- السمة أو الكلمة الرئيسية. مَعلمة مطلوبة. يُعد ارتفاع العنصر، حيث
قيمة بُعد (أو
مصدر السمة) أو كلمة رئيسية
(
"match_parent"
أو "wrap_content"
) لمزيد من المعلومات
شاهد قيم android:layout_height
android:layout_width.
android:layout_width
- السمة أو الكلمة الرئيسية. مَعلمة مطلوبة. يُعد عرض العنصر، مثل
قيمة بُعد (أو
مصدر السمة) أو كلمة رئيسية
(
"match_parent"
أو "wrap_content"
) لمزيد من المعلومات
شاهد قيم android:layout_height
android:layout_width.
View
تتيح الفئة الأساسية مزيدًا من السمات، كما تتوافق الكثير من السمات الأخرى مع كل عملية تنفيذ
View
لمزيد من المعلومات، يُرجى الاطّلاع على التنسيقات. بالنسبة
مرجعًا لجميع السمات المتاحة،
يمكنك مراجعة المستندات المرجعية المقابلة، مثل سمات XML الخاصة بـ TextView
.
<requestFocus>
- يمكن لأي عنصر يمثل كائن
View
أن يتضمّن هذا العنصر الفارغ،
مما يمنح الأصل التركيز الأولي على الشاشة. يمكن أن يكون لديك واحد فقط من هذه
العناصر في كل ملف.
<include>
- ضمِّن ملف تنسيق في هذا التنسيق.
السمات:
layout
- مورد التنسيق: مَعلمة مطلوبة. الإشارة إلى تخطيط
المصدر.
android:id
- رقم تعريف المورد. لإلغاء رقم التعريف المقدَّم للملف الشخصي الجذر في التنسيق المضمَّن.
android:layout_height
- السمة أو الكلمة الرئيسية. لإلغاء الارتفاع المحدد للعرض الجذر في
التخطيط المضمّن. لا يسري هذا الإجراء إلا إذا تم تعريف السمة
android:layout_width
أيضًا.
android:layout_width
- السمة أو الكلمة الرئيسية. لإلغاء العرض المحدد للعرض الجذر في
التخطيط المضمّن. لا يسري هذا الإجراء إلا إذا تم تعريف السمة
android:layout_height
أيضًا.
يمكنك تضمين أي سمات تنسيق أخرى في <include>
تكون
يدعمها العنصر الجذر في التنسيق المضمن وتلغي تلك المحددة في
عنصر الجذر.
تنبيه: إذا كنت تريد إلغاء سمات التنسيق باستخدام
في علامة <include>
، يجب إلغاء العلامتين
android:layout_height
وandroid:layout_width
من أجل
دخول سمات التخطيط الأخرى حيز التنفيذ.
ومن الطرق الأخرى لتضمين التنسيق استخدام ViewStub
: تصميم خفيف
لا يستهلك أي مساحة تخطيطية إلى أن تعمل على تضخيمها بشكل صريح. عندما تفعل ذلك، فإنه يتضمن
ملفّ تنسيق محدّد من خلال سمة android:layout
الخاصة به. لمزيد من المعلومات عن استخدام ViewStub
، اقرأ تحميل
مشاهدة عند الطلب.
<merge>
- عنصر جذر بديل لا يتم رسمه في التدرج الهرمي للتنسيق. يُعد استخدام هذا
يكون العنصر الجذر مفيدًا عندما تعرف أن هذا التنسيق موضوع في تنسيق
الذي يحتوي على العنصر الرئيسي
View
المناسب لاحتواء العناصر الثانوية
العنصر <merge>
يكون هذا مفيدًا بشكل خاص عندما تخطط لتضمين هذا التخطيط
في ملف تنسيق آخر باستخدام <include>
ولا يتطلّب هذا التنسيق حاوية ViewGroup
مختلفة. لمزيد من المعلومات،
للحصول على معلومات حول دمج التنسيقات، يُرجى الاطّلاع على المقالة إعادة استخدام التنسيقات مع <include>.
قيمة android:id
بالنسبة إلى قيمة رقم التعريف، عليك عادةً استخدام نموذج البنية هذا: "@+id/name"
، كما هو موضّح في المثال التالي. تشير رسالة الأشكال البيانية
يشير رمز علامة الجمع، +
، إلى أنّ هذا رقم تعريف مورد جديد، وستنشئ أداة aapt
عدد صحيح جديد للمورد في الفئة R.java
، إذا لم يكن موجودًا من قبل.
<TextView android:id="@+id/nameTextbox"/>
أصبح الاسم nameTextbox
الآن رقم تعريف مورد مرفقًا بهذا العنصر. يمكنك بعد ذلك
يمكنك الرجوع إلى TextView
المرتبط بالمعرِّف في Java:
Kotlin
val textView: TextView? = findViewById(R.id.nameTextbox)
Java
TextView textView = findViewById(R.id.nameTextbox);
يعرض هذا الرمز الكائن TextView
.
ومع ذلك، إذا سبق لك تحديد مورد للرقم التعريفي، ولم يتم
مستخدم بالفعل، فيمكنك تطبيق ذلك المعرّف على عنصر View
من خلال استبعاد
في القيمة android:id
.
قيم android:layout_height و
android:layout_width
يتم التعبير عن قيم الارتفاع والعرض باستخدام أي من
سمة
الوحدات المتوافقة مع Android (بكسل أو dp أو sp أو pt أو بوصة أو ملم) أو باستخدام الكلمات الرئيسية التالية:
القيمة | الوصف |
match_parent |
يضبط السمة لمطابقة قيمة العنصر الرئيسي. تمّت الإضافة في المستوى 8 من واجهة برمجة التطبيقات إلى
إيقاف fill_parent |
wrap_content |
لضبط البُعد على الحجم المطلوب فقط لملاءمة محتوى هذا العنصر. |
عناصر العرض المخصّص
يمكنك إنشاء View
وViewGroup
مخصّصَين.
العناصر وتطبيقها على التخطيط تمامًا مثل التخطيط القياسي
العنصر. ويمكنك أيضًا تحديد السمات المتوافقة في عنصر XML. لمزيد من المعلومات
راجِع إنشاء مكوّنات طريقة العرض المخصّصة.
- مثلا:
- تم حفظ ملف XML في
res/layout/main_activity.xml
:
<?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>
يحمّل رمز التطبيق هذا تنسيق Activity
في
طريقة onCreate()
:
-
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);
}
- راجِع أيضًا:
-