مرجع سمات الأدوات (طرق العرض)

المفاهيم وتنفيذ Jetpack Compose

يتيح استوديو Android مجموعة متنوعة من سمات تنسيق XML في مساحة الاسم tools التي تتيح ميزات وقت التصميم، مثل التصميم الذي يجب عرضه في جزء، أو سلوكيات وقت التجميع، مثل وضع التقليص الذي يجب تطبيقه على موارد تنسيق XML. عند إنشاء تطبيقك، تزيل أدوات الإنشاء هذه السمات حتى لا يكون هناك أي تأثير على حجم حزمة APK أو سلوك وقت التشغيل.

لاستخدام هذه السمات، أضِف مساحة الاسم tools إلى العنصر الجذر لكل ملفّ XML تريد استخدامها فيه، كما هو موضّح هنا:

<RootTag xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" >

سمات معالجة الأخطاء

تساعد السمة التالية في منع ظهور رسائل التحذير من أداة lint:

tools:targetApi

مخصّصة لـ: أي عنصر

مُستخدَم من قِبل: Lint

تعمل هذه السمة بالطريقة نفسها التي يعمل بها التعليق التوضيحي @TargetApi في رمز Java. ويتيح لك تحديد مستوى واجهة برمجة التطبيقات (إما كعدد صحيح أو كاسم رمزي) الذي يتوافق مع هذا العنصر.

يخبر هذا الأدوات أنك تعتقد أن هذا العنصر وأي عناصر فرعية يتم استخدامها فقط على مستوى واجهة برمجة التطبيقات المحدد أو أعلى. يؤدي ذلك إلى منع lint من تحذيرك إذا لم يكن هذا العنصر أو سماته متوفّرة في مستوى واجهة برمجة التطبيقات الذي تحدّده على أنّه minSdkVersion.

على سبيل المثال، يمكنك استخدام هذه السمة لأنّ GridLayout لا يتوفّر إلا في المستوى 14 من واجهة برمجة التطبيقات والإصدارات الأحدث، ولكنّك تعلم أنّ هذا التنسيق لا يُستخدم في الرمز البرمجي لأي إصدارات أقدم:

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:targetApi="14" >

(ومع ذلك، يُرجى العِلم أنّنا ننصحك باستخدام GridLayout من مكتبة الدعم بدلاً من ذلك).

سمات العرض في وقت التصميم

تحدّد السمات التالية خصائص التنسيق التي تظهر فقط في معاينة تنسيق "استوديو Android".

‫‎tools: بدلاً من ‎android:

مخصّص لـ: <View>

يستخدمه: محرِّر تنسيق "استوديو Android"

يمكنك إدراج عيّنات بيانات في معاينة التنسيق باستخدام البادئة tools: بدلاً من android: مع أي سمة <View> من إطار عمل Android. ويكون ذلك مفيدًا عندما لا تتم تعبئة قيمة السمة حتى وقت التشغيل وتريد الاطّلاع على التأثير في معاينة التنسيق.

على سبيل المثال، إذا تم ضبط قيمة السمة android:text في وقت التشغيل، أو إذا أردت الاطّلاع على التنسيق بقيمة مختلفة عن القيمة التلقائية، يمكنك إضافة tools:text لتحديد بعض النصوص لمعاينة التنسيق فقط.

تضبط السمة tools:text تطبيق Google Voice كقيمة لمعاينة
      التنسيق
الشكل 1. تضبط السمة tools:text القيمة "Google Voice" لمعاينة التنسيق.

يمكنك إضافة كل من سمة مساحة الاسم android: التي يتم استخدامها في وقت التشغيل، وسمة tools: المطابقة التي تلغي سمة وقت التشغيل في معاينة التنسيق فقط.

يمكنك أيضًا استخدام سمة tools: للتراجع عن إعداد سمة لمعاينة التنسيق فقط. على سبيل المثال، إذا كان لديك FrameLayout يتضمّن عنصرَين فرعيَّين ولكنك تريد رؤية عنصر فرعي واحد فقط في معاينة التنسيق، يمكنك ضبط أحدهما ليكون غير مرئي في معاينة التنسيق، كما هو موضّح هنا:

<Button
    android:id="@+id/button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="First" />

<Button
    android:id="@+id/button2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Second"
    tools:visibility="invisible"  />

عند استخدام محرر التخطيط في عرض التصميم، تتيح لك نافذة الخصائص تعديل بعض سمات عرض وقت التصميم. تتم الإشارة إلى كل سمة وقت التصميم برمز مفتاح ربط رمز
مفتاح الربط بجانب اسم السمة لتمييزها عن السمة الحقيقية التي تحمل الاسم نفسه.

tools:context

الجمهور المستهدف: أي مستخدم جذر <View>

يتم استخدامها من قِبل: Lint ومحرِّر تنسيق "استوديو Android"

تحدّد هذه السمة النشاط المرتبط بهذا التنسيق تلقائيًا. يتيح ذلك تفعيل الميزات في المحرِّر أو معاينة التنسيق التي تتطلّب معرفة النشاط، مثل مظهر التنسيق في المعاينة ومكان إدراج معالِجات onClick التي تم إنشاؤها من إصلاح سريع، كما هو موضّح في الشكل 2.

لا يعمل الإصلاح السريع لسمة onClick إلا إذا ضبطت tools:context
الشكل 2. لا يعمل الحلّ السريع لسمة onClick إلا إذا ضبطت tools:context.

يمكنك تحديد اسم فئة النشاط باستخدام بادئة النقطة نفسها كما في ملف البيان (باستثناء اسم الحزمة الكامل).

على سبيل المثال:

<android.support.constraint.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context=".MainActivity" >

tools:itemCount

مخصّص لـ: <RecyclerView>

يستخدمه: محرِّر تنسيق "استوديو Android"

بالنسبة إلى RecyclerView معيّن، تحدّد هذه السمة عدد العناصر التي يجب أن يعرضها "محرِّر التنسيق" في نافذة المعاينة.

على سبيل المثال:

<androidx.recyclerview.widget.RecyclerView
    android:id="@+id/recyclerView"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:itemCount="3"/>

tools:layout

مخصّص لـ: <fragment>

يستخدمه: "محرِّر تنسيق استوديو Android"

تحدّد هذه السمة التنسيق الذي تريد أن ترسمه معاينة التنسيق داخل الجزء لأنّ معاينة التنسيق لا يمكنها تنفيذ رمز النشاط الذي يطبّق التنسيق عادةً.

على سبيل المثال:

<fragment android:name="com.example.main.ItemListFragment"
    tools:layout="@layout/list_content" />

tools:listitem وtools:listheader وtools:listfooter

مخصّص لـ: <AdapterView> (والفئات الفرعية مثل <ListView>)

يستخدمه: "محرِّر تنسيق استوديو Android"

تحدّد هذه السمات التنسيق الذي سيظهر في معاينة التنسيق لعناصر القائمة والعنوان والتذييل. يتم ملء أي حقول بيانات في التخطيط بمحتويات رقمية، مثل "العنصر 1"، بحيث لا تكون عناصر القائمة متكررة.

على سبيل المثال:

<ListView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:listitem="@layout/sample_list_item"
    tools:listheader="@layout/sample_list_header"
    tools:listfooter="@layout/sample_list_footer" />

tools:showIn

مخصّص لـ: أي جذر <View> في تنسيق تتم الإشارة إليه من خلال <include>

يستخدمه: "محرِّر تنسيق استوديو Android"

تتيح لك هذه السمة الإشارة إلى تصميم يستخدم هذا التصميم باستخدام <include>، حتى تتمكّن من معاينة هذا الملف وتعديله كما يظهر أثناء تضمينه في تصميم العنصر الرئيسي.

على سبيل المثال:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:text="@string/hello_world"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:showIn="@layout/activity_main" />

تعرض معاينة التنسيق الآن تنسيق TextView هذا كما يظهر داخل تنسيق activity_main.

tools:menu

الجمهور المستهدف: أي مستخدم جذر <View>

يستخدمه: "محرِّر تنسيق استوديو Android"

تحدّد هذه السمة القائمة التي تظهر فيها معاينة التنسيق في شريط التطبيقات. القيمة هي معرّف قائمة واحد أو أكثر، مفصولة بفواصل، بدون @menu/ أو أي بادئة معرّف من هذا القبيل وبدون الامتداد .xml.

على سبيل المثال:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:menu="menu1,menu2" />

tools:minValue، tools:maxValue

مخصّص لـ: <NumberPicker>

يستخدمه: "محرِّر تنسيق استوديو Android"

تحدّد هاتان السمتان القيمتَين الدنيا والقصوى لطريقة عرض NumberPicker.

على سبيل المثال:

<NumberPicker xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/numberPicker"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:minValue="0"
    tools:maxValue="10" />

tools:openDrawer

مخصّص لـ: <DrawerLayout>

يستخدمه: "محرِّر تنسيق استوديو Android"

تتيح لك هذه السمة فتح DrawerLayout في المعاينة.

يمكنك أيضًا تعديل طريقة عرض "محرِّر التنسيق" للتنسيق من خلال تمرير إحدى القيم التالية:

الجدول 1: القيم لتعديل كيفية عرض "محرر التنسيق" لـ DrawerLayout

ثابتالقيمةالوصف
end800005دفع العنصر إلى نهاية الحاوية، بدون تغيير حجمه
left3دفع العنصر إلى يسار الحاوية، بدون تغيير حجمه
right5دفع العنصر إلى يمين الحاوية، بدون تغيير حجمه
start800003دفع العنصر إلى بداية الحاوية، بدون تغيير حجمه

على سبيل المثال:

<androidx.drawerlayout.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:openDrawer="start" />

"@tools:sample/*" مورد

الجمهور المستهدف: أي طريقة عرض تتيح استخدام نصوص أو صور في واجهة المستخدم

يستخدمه: محرِّر تنسيق "استوديو Android"

تتيح لك هذه السمة إدخال بيانات أو صور مؤقتة في العرض. على سبيل المثال، لاختبار سلوك التخطيط مع النص قبل الانتهاء من نص واجهة المستخدم لتطبيقك، يمكنك استخدام نص مؤقت على النحو التالي:

<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    tools:text="@tools:sample/lorem" />

يوضح الجدول التالي أنواع بيانات العناصر النائبة التي يمكنك إدخالها في تخطيطاتك:

الجدول 2: بيانات العنصر النائب للتخطيطات

قيمة السمةوصف بيانات العنصر النائب
@tools:sample/full_names الأسماء الكاملة التي تم إنشاؤها عشوائيًا من مجموعة @tools:sample/first_names و @tools:sample/last_names
@tools:sample/first_names الأسماء الأولى الشائعة
@tools:sample/last_names أسماء العائلات الشائعة
@tools:sample/cities أسماء مدن من جميع أنحاء العالم
@tools:sample/us_zipcodes رموز بريدية أمريكية تم إنشاؤها عشوائيًا
@tools:sample/us_phones أرقام هواتف تم إنشاؤها عشوائيًا بالتنسيق التالي: (800) 555-xxxx
@tools:sample/lorem نص مؤقت باللغة اللاتينية
@tools:sample/date/day_of_week تواريخ وأوقات عشوائية للتنسيق المحدّد
@tools:sample/date/ddmmyy
@tools:sample/date/mmddyy
@tools:sample/date/hhmm
@tools:sample/date/hhmmss
@tools:sample/avatars متّجهات قابلة للرسم يمكنك استخدامها كأفاتار للملف الشخصي
@tools:sample/backgrounds/scenic صور يمكنك استخدامها كخلفيات