إخفاء شريط التنقل

يصف هذا الدرس كيفية إخفاء شريط التنقل، الذي تم تقديمه في Android 4.0 (المستوى 14 من واجهة برمجة التطبيقات).

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

أشرطة النظام

الشكل 1. شريط التنقل

إخفاء شريط التنقل

يمكنك إخفاء شريط التنقل باستخدام العلامة SYSTEM_UI_FLAG_HIDE_NAVIGATION. يخفي هذا المقتطف كلاً من شريط التنقل وشريط الحالة:

Kotlin

window.decorView.apply {
    // Hide both the navigation bar and the status bar.
    // SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
    // a general rule, you should design your app to hide the status bar whenever you
    // hide the navigation bar.
    systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN
}

Java

View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
// a general rule, you should design your app to hide the status bar whenever you
// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
              | View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);

لاحظ ما يلي:

  • بهذه الطريقة، يؤدّي لمس أي مكان على الشاشة إلى إعادة ظهوره وإبقائه مرئيًا. يؤدي تفاعل المستخدم إلى محو العلامات.
  • بعد أن يتم محو العلامات، يجب أن يعيد تطبيقك تعيينها إذا كنت تريد إخفاء الأشرطة مرة أخرى. راجِع القسم الاستجابة لتغييرات مستوى رؤية واجهة المستخدم للتعرّف على كيفية رصد التغيّرات في مستوى رؤية واجهة المستخدم كي يتمكّن تطبيقك من الاستجابة وفقًا لذلك.
  • يؤدي تحديد علامات واجهة المستخدم إلى إحداث فرق. في حال إخفاء أشرطة النظام في طريقة onCreate() الخاصة بنشاطك وضغط المستخدم على زر الشاشة الرئيسية، ستظهر أشرطة النظام مرة أخرى. عندما يعيد المستخدم فتح النشاط، لن يتم استدعاء "onCreate()"، لذا ستظل أشرطة النظام مرئية. إذا أردت استمرار التغييرات التي تطرأ على واجهة مستخدم النظام أثناء انتقال المستخدم إلى نشاطك وخروجه منه، يمكنك ضبط علامات واجهة المستخدم في onResume() أو onWindowFocusChanged().
  • يكون للطريقة setSystemUiVisibility() تأثير فقط إذا كانت طريقة العرض التي تتصل منها مرئية.
  • يؤدي الانتقال من طريقة العرض إلى محو العلامات المضبوطة باستخدام setSystemUiVisibility().

جعل المحتوى يظهر خلف شريط التنقل

على نظام التشغيل Android 4.1 والإصدارات الأحدث، يمكنك ضبط محتوى التطبيق ليظهر خلف شريط التنقل، بحيث لا يتم تغيير حجم المحتوى عند إخفاء أو ظهور شريط التنقل. لتنفيذ ذلك، استخدِم SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION. قد تحتاج أيضًا إلى استخدام SYSTEM_UI_FLAG_LAYOUT_STABLE لمساعدة تطبيقك في الحفاظ على تنسيق ثابت.

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