مورد التنسيق
    
    
      
    
    
      
      تنظيم صفحاتك في مجموعات
    
    
      
      يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
    
  
  
      
    
  
  
  
  
  
    
    
    
  
  
    
    
    
يحدّد مورد التصميم بنية واجهة المستخدم في 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،
على سبيل المثال، يتضمن ملفLinearLayoutXML
.
 
- <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:
 Kotlinval textView: TextView? = findViewById(R.id.nameTextbox) JavaTextView 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():
 
- 
Kotlinpublic override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    setContentView(R.layout.main_activity)
}Javapublic void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_activity);
}
- راجِع أيضًا:
- 
 
    
  
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
  تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
  
  
  
    
      [[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[]]