يمكنك استخدام 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الذي يضم المحتوى. - stringId
- رقم تعريف المورد للرسالة التي تريد عرضها يمكن أن يكون هذا النص منسّقًا أو غير منسّق.
- المدة
-
المدة التي سيتم عرض الرسالة خلالها يمكن أن تكون هذه المدة
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();