مورد التنسيق
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يحدّد مورد التنسيق بنية واجهة المستخدم في 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:lookup_height
وandroid:Layout_width.
android:layout_width
- السمة أو الكلمة الرئيسية: مَعلمة مطلوبة. عرض المجموعة، في صورة
قيمة سمة (أو
مورد سمة) أو كلمة رئيسية
(
"match_parent"
أو "wrap_content"
). لمزيد من المعلومات،
يُرجى الاطّلاع على القسم قيم android:lookup_height
وandroid:lookup_width.
تتوافق الفئة الأساسية ViewGroup
مع المزيد من السمات، ويمكن استخدام المزيد من السمات الأخرى في كل عملية تنفيذ
للسمة ViewGroup
. وللحصول على مرجع لجميع السمات المتاحة،
يمكنك الاطّلاع على المستندات المرجعية المناسبة للفئة ViewGroup
،
على سبيل المثال، سمات XML الخاصة بـ LinearLayout
.
<View>
- مكوّن فردي لواجهة المستخدم، يُشار إليه عمومًا باسم التطبيق المصغَّر. وتشمل الأنواع المختلفة لكائنات
View
TextView
وButton
وCheckBox
.
السمات:
android:id
- رقم تعريف المورد. تمثّل هذه السمة اسم مورد فريدًا للعنصر، يمكنك استخدامه للحصول على مرجع إلى
View
من تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على القسم قيمة android:id.
android:layout_height
- السمة أو الكلمة الرئيسية: مَعلمة مطلوبة. ارتفاع العنصر، على هيئة
قيمة سمة (أو
مورد سمة) أو كلمة رئيسية
(
"match_parent"
أو "wrap_content"
). لمزيد من المعلومات،
يُرجى الاطّلاع على القسم قيم android:lookup_height
وandroid:Layout_width.
android:layout_width
- السمة أو الكلمة الرئيسية: مَعلمة مطلوبة. عرض العنصر،
كقيمة بُعد (أو
مورد سمة) أو كلمة رئيسية
(
"match_parent"
أو "wrap_content"
). لمزيد من المعلومات،
راجع القسم قيم android:lookup_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:format_height
وandroid:اخترتها_width
يتم التعبير عن قيم الارتفاع والعرض باستخدام أيٍّ من
وحدات
السمات المتوافقة مع نظام التشغيل Android (px, dp, sp, pt, in, mm) أو باستخدام الكلمات الرئيسية التالية:
القيمة | الوصف |
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);
}
- راجِع أيضًا:
-
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2024-01-03 (حسب التوقيت العالمي المتفَّق عليه)
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"لا يحتوي على المعلومات التي أحتاج إليها."
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"الخطوات معقدة للغاية / كثيرة جدًا."
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"المحتوى قديم."
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"ثمة مشكلة في الترجمة."
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"مشكلة في العيّنات / التعليمات البرمجية"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"غير ذلك"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"يسهُل فهم المحتوى."
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"ساعَدني المحتوى في حلّ مشكلتي."
},{
"type": "thumb-up",
"id": "otherUp",
"label":"غير ذلك"
}]
{
"last_modified": "تاريخ التعديل الأخير: 2024-01-03 (حسب التوقيت العالمي المتفَّق عليه)",
"state": ""
}