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

تجربة طريقة "إنشاء"
‫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، كما هو موضّح في المثال التالي:

<androidx.coordinatorlayout.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/myCoordinatorLayout"
    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>

</androidx.coordinatorlayout.widget.CoordinatorLayout>

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

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

عرض رسالة

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

إنشاء عنصر Snackbar

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

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

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

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

mySnackbar.show()

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

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

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