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

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

يمكنك استخدام من 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 من خلال استدعاء الدالة الثابتة Snackbar.make() . عند إنشاء "Snackbar"، حدِّد الرسالة التي تريد استخدامها المدة التي يتم خلالها عرض الرسالة ومدة عرضها:

Kotlin

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

Java

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

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

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

Kotlin

mySnackbar.show()

Java

mySnackbar.show();

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

إذا كنت تريد عرض رسالة للمستخدم ولا تحتاج إلى الاتصال بأي من 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();