บทเรียนนี้จะอธิบายวิธีลงทะเบียน Listener เพื่อให้แอปของคุณได้รับการแจ้งเตือน ของการเปลี่ยนแปลงการแสดง UI ของระบบ การทำเช่นนี้มีประโยชน์ในกรณีที่คุณต้องการ ซิงค์ส่วนอื่นๆ ของ UI ด้วยการซ่อน/แสดงแถบระบบ
ลงทะเบียน Listener
หากต้องการรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงการแสดง UI ของระบบ ให้ลงทะเบียน
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. } } });
โดยทั่วไปแล้ว คุณควรซิงค์ UI กับการเปลี่ยนแปลงในแถบระบบอยู่เสมอ การมองเห็น ตัวอย่างเช่น คุณสามารถใช้ Listener นี้เพื่อซ่อนและแสดงแถบการทำงานใน พร้อมกับการซ่อนและแสดงแถบสถานะ