تعتيم أشرطة النظام (متوقف)
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
يصف هذا الدرس كيفية تعتيم أشرطة النظام (أي الحالة وشريط التنقل
الأشرطة) في الإصدار 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);
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Dim the system bars (deprecated)\n\n| **Deprecated:** [setSystemUiVisibility](/reference/android/view/View#setSystemUiVisibility(int)) is deprecated in API Level 30\n\nThis lesson describes how to dim the system bars (that is, the status and the navigation\nbars) on Android 4.0 (API level 14) and higher. Android does not provide a built-in way to dim the\nsystem bars on earlier versions.\n\nWhen you use this approach, the content doesn't resize, but the icons in the system bars\nvisually recede. As soon as the user touches either the status bar or the navigation bar area of\nthe screen, both bars become fully visible. The advantage of this\napproach is that the bars are still present but their details are obscured, thus\ncreating an immersive experience without sacrificing easy access to the bars.\n\nDim the Status and Navigation Bars\n----------------------------------\n\nYou can dim the status and navigation bars using the\n[SYSTEM_UI_FLAG_LOW_PROFILE](/reference/android/view/View#SYSTEM_UI_FLAG_LOW_PROFILE) flag, as follows: \n\n### Kotlin\n\n```kotlin\n// This example uses decor view, but you can use any visible view.\nactivity?.window?.decorView?.apply {\n systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE\n}\n```\n\n### Java\n\n```java\n// This example uses decor view, but you can use any visible view.\nView decorView = getActivity().getWindow().getDecorView();\nint uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;\ndecorView.setSystemUiVisibility(uiOptions);\n```\n\nAs soon as the user touches the status or navigation bar, the flag is cleared,\ncausing the bars to be undimmed. Once the flag has been cleared, your app needs to reset\nit if you want to dim the bars again.\n\nFigure 1 shows a gallery image in which the navigation bar is dimmed (note that the Gallery app\ncompletely hides the status bar; it doesn't dim it). Notice that the navigation bar (right\nside of the image) has faint white dots on it to represent the navigation controls:\n\n\n**Figure 1.** Dimmed system bars.\n\nFigure 2 shows the same gallery image, but with the system bars displayed:\n\n\n**Figure 2.** Visible system bars.\n\nReveal the Status and Navigation Bars\n-------------------------------------\n\nIf you want to programmatically clear flags set with\n[setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)), you can do so\nas follows: \n\n### Kotlin\n\n```kotlin\nactivity?.window?.decorView?.apply {\n // Calling setSystemUiVisibility() with a value of 0 clears\n // all flags.\n systemUiVisibility = 0\n}\n```\n\n### Java\n\n```java\nView decorView = getActivity().getWindow().getDecorView();\n// Calling setSystemUiVisibility() with a value of 0 clears\n// all flags.\ndecorView.setSystemUiVisibility(0);\n```"]]