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

يصف هذا الدرس كيفية تعتيم أشرطة النظام (أي الحالة وشريط التنقل الأشرطة) في الإصدار 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);