الاستجابة للتغييرات في إذن الوصول إلى واجهة المستخدم

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

تسجيل مستمع

لتلقّي إشعارات عند حدوث تغييرات في مستوى رؤية واجهة مستخدم النظام، سجِّل View.OnSystemUiVisibilityChangeListener في طريقة العرض. وعادةً ما يكون هذا هو العرض الذي تستخدمه للتحكم في مستوى رؤية التنقل.

على سبيل المثال، يمكنك إضافة هذا الرمز إلى طريقة onCreate() الخاصة بنشاطك:

Kotlin

window.decorView.setOnSystemUiVisibilityChangeListener { visibility ->
    // Note that system bars will only be "visible" if none of the
    // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
    if (visibility and View.SYSTEM_UI_FLAG_FULLSCREEN == 0) {
        // TODO: The system bars are visible. Make any desired
        // adjustments to your UI, such as showing the action bar or
        // other navigational controls.
    } else {
        // TODO: The system bars are NOT visible. Make any desired
        // adjustments to your UI, such as hiding the action bar or
        // other navigational controls.
    }
}

Java

View decorView = getWindow().getDecorView();
decorView.setOnSystemUiVisibilityChangeListener
        (new View.OnSystemUiVisibilityChangeListener() {
    @Override
    public void onSystemUiVisibilityChange(int visibility) {
        // Note that system bars will only be "visible" if none of the
        // LOW_PROFILE, HIDE_NAVIGATION, or FULLSCREEN flags are set.
        if ((visibility & View.SYSTEM_UI_FLAG_FULLSCREEN) == 0) {
            // TODO: The system bars are visible. Make any desired
            // adjustments to your UI, such as showing the action bar or
            // other navigational controls.
        } else {
            // TODO: The system bars are NOT visible. Make any desired
            // adjustments to your UI, such as hiding the action bar or
            // other navigational controls.
        }
    }
});

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