Kullanıcı arayüzü görünürlüğü değişikliklerine yanıt verme

Bu derste, uygulamanızın bildirim alması için bir dinleyiciyi nasıl kaydedeceğiniz açıklanmaktadır. görünürlük değişikliklerinin sayısını gösterir. Kafa karışıklığı yaratan sistem çubuklarının gizlenmesi/gösterilmesiyle kullanıcı arayüzünüzün diğer bölümlerini senkronize etmeyi sağlar.

Bir Dinleyici Kaydet

Sistem kullanıcı arayüzü görünürlüğü değişiklikleriyle ilgili bildirim almak için bir Görünümünüze View.OnSystemUiVisibilityChangeListener. Bu, genellikle gezinme görünürlüğünü kontrol etmek için kullandığınız görünümdür.

Örneğin, bu kodu etkinliğinizin onCreate() yöntem:

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.
        }
    }
});

Kullanıcı arayüzünüzü sistem çubuğundaki değişikliklerle senkronize etmek genellikle iyi bir uygulamadır. görünürlük. Örneğin, bu işleyiciyi kullanarak işlem çubuğunu gizleyebilir ve saklanıp gösterilen durum çubuğunun gösterildiği bir konser.