إنشاء رسالة منبثقة وعرضها

تجربة ميزة "الكتابة"
‫Jetpack Compose هي مجموعة أدوات واجهة المستخدم المُقترَحة لنظام التشغيل Android. تعرَّف على كيفية إضافة إشعارات في ميزة "الإنشاء".

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

استخدام CoordinatorLayout

تم إرفاق Snackbar بعرض. يوفّر Snackbar وظائف أساسية إذا كان مرفقًا بأي عنصر مشتق من فئة View، مثل أي من عناصر التنسيق الشائعة. ومع ذلك، إذا كان Snackbar مرتبطًا بأحد CoordinatorLayout، فإنه يحصل على ميزات إضافية:Snackbar

  • يمكن للمستخدم إغلاق Snackbar من خلال التمرير سريعًا لليمين أو لليسار.
  • ينقل التنسيق عناصر واجهة المستخدم الأخرى عند ظهور Snackbar. على سبيل المثال، إذا كان التنسيق يحتوي على FloatingActionButton، ينقل التنسيق الزرّ للأعلى عند عرض Snackbar، بدلاً من رسم Snackbar فوق الزرّ. يمكنك الاطّلاع على شكل ذلك في الشكل 1.

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

<android.support.design.widget.CoordinatorLayout
    android:id="@+id/myCoordinatorLayout"
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- Here are the existing layout elements, now wrapped in
         a CoordinatorLayout. -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <!-- ...Toolbar, other layouts, other elements... -->

    </LinearLayout>

</android.support.design.widget.CoordinatorLayout>

اضبط علامة android:id على CoordinatorLayout. ستحتاج إلى رقم تعريف التنسيق عند عرض الرسالة.

الشكل 1: ينقل الرمز CoordinatorLayout الرمز FloatingActionButton للأعلى عند ظهور الرمز Snackbar.

عرض رسالة

هناك خطوتان لعرض رسالة. أولاً، عليك إنشاء كائن Snackbar يتضمّن نص الرسالة. بعد ذلك، يمكنك استدعاء show() طريقة هذا العنصر لعرض الرسالة على المستخدم.

إنشاء عنصر شريط معلومات سريع

أنشئ عنصرًا من النوع Snackbar من خلال استدعاء الطريقة الثابتة Snackbar.make(). عند إنشاء Snackbar، حدِّد الرسالة التي يعرضها ومدة عرضها:

Kotlin

val mySnackbar = Snackbar.make(view, stringId, duration)

Java

Snackbar mySnackbar = Snackbar.make(view, stringId, duration);
عرض
العرض الذي تريد إرفاق Snackbar به. تبحث الطريقة في التسلسل الهرمي للعرض من العرض الذي تم تمريره إلى أن تصل إلى CoordinatorLayout أو عرض محتوى ديكور النافذة. من السهل عادةً تمرير CoordinatorLayout الذي يحيط بالمحتوى.
stringId
معرّف المورد للرسالة التي تريد عرضها. ويمكن أن يكون نصًا منسَّقًا أو غير منسَّق.
المدة
المدة التي يتم فيها عرض الرسالة. يمكن أن يكون LENGTH_SHORT أو LENGTH_LONG.

عرض الرسالة للمستخدم

بعد إنشاء Snackbar، استخدِم show() لعرض Snackbar على المستخدم:

Kotlin

mySnackbar.show()

Java

mySnackbar.show();

لا يعرض النظام عناصر Snackbar متعددة في الوقت نفسه، لذا إذا كان العرض يعرض حاليًا Snackbar آخر، يُضيفه النظام إلى "قائمة المحتوى التالي" ويعرضه بعد انتهاء صلاحيةSnackbar الحالي أو إغلاقه.Snackbar

إذا كنت تريد عرض رسالة للمستخدم ولا تحتاج إلى استدعاء أي من methods Snackbar لوظائف المساعدة، لن تحتاج إلى الاحتفاظ بالإشارة إلى Snackbar بعد استدعاء show(). لهذا السبب، من الشائع استخدام تسلسل الطريقة لإنشاء Snackbar وعرضه في عبارة واحدة:

Kotlin

Snackbar.make(
        findViewById(R.id.myCoordinatorLayout),
        R.string.email_sent,
        Snackbar.LENGTH_SHORT
).show()

Java

Snackbar.make(findViewById(R.id.myCoordinatorLayout), R.string.email_sent,
                        Snackbar.LENGTH_SHORT)
        .show();