Tutorial ini menjelaskan cara mendaftarkan pemroses sehingga aplikasi Anda dapat menerima notifikasi perubahan visibilitas UI sistem. Hal ini berguna jika Anda ingin menyinkronkan bagian lain UI Anda dengan menyembunyikan/menampilkan kolom sistem.
Mendaftarkan Pemroses
Untuk menerima notifikasi tentang perubahan visibilitas UI sistem, daftarkan
View.OnSystemUiVisibilityChangeListener
ke tampilan Anda.
Biasanya ini adalah tampilan yang Anda gunakan untuk mengontrol visibilitas navigasi.
Misalnya, Anda dapat menambahkan kode ini ke aktivitas
Metode 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. } } });
Ini umumnya praktik yang baik untuk menjaga UI Anda tetap sinkron dengan perubahan di bilah sistem visibilitas tinggi. Misalnya, Anda bisa menggunakan pemroses ini untuk menyembunyikan dan menampilkan bilah tindakan di konser dengan {i>status bar<i} yang tersembunyi dan ditampilkan.