تعتيم أشرطة النظام (متوقف)

يشرح هذا الدرس كيفية تعتيم أشرطة النظام (أي الحالة وأشرطة التنقّل) على نظام التشغيل Android 4.0 (المستوى 14 لواجهة برمجة التطبيقات) والإصدارات الأحدث. لا يوفر Android طريقة مدمَجة لتعتيم أشرطة النظام في الإصدارات السابقة.

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

تعتيم شريطي الحالة والتنقل

يمكنك تعتيم الحالة وأشرطة التنقل باستخدام علامة SYSTEM_UI_FLAG_LOW_PROFILE على النحو التالي:

Kotlin

// This example uses decor view, but you can use any visible view.
activity?.window?.decorView?.apply {
    systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE
}

Java

// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

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

يوضح الشكل 1 صورة معرض يكون فيها شريط التنقل معتمًا (لاحظ أن تطبيق المعرض يخفي شريط الحالة تمامًا، ولا يخفيه). لاحظ أن شريط التنقل (الجانب الأيمن من الصورة) يحتوي على نقاط بيضاء باهتة عليه لتمثيل عناصر التحكم في التنقل:

أشرطة النظام

الشكل 1. أشرطة النظام الباهتة

يوضح الشكل 2 صورة المعرض نفسها، ولكن مع عرض أشرطة النظام:

أشرطة النظام

الشكل 2. أشرطة النظام المرئية

إظهار شريطي الحالة والتنقل

إذا أردت محو العلامات التي تم ضبطها آليًا باستخدام setSystemUiVisibility()، يمكنك اتّباع الخطوات التالية:

Kotlin

activity?.window?.decorView?.apply {
    // Calling setSystemUiVisibility() with a value of 0 clears
    // all flags.
    systemUiVisibility = 0
}

Java

View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);