บทเรียนนี้จะอธิบายวิธีหรี่แถบระบบ (ซึ่งก็คือสถานะและการนำทาง ใน Android 4.0 (API ระดับ 14) ขึ้นไป Android ไม่มีวิธีในตัวในการหรี่แสง แถบระบบในเวอร์ชันก่อนหน้า
เมื่อใช้วิธีนี้ เนื้อหาจะไม่ปรับขนาด แต่ไอคอนในแถบระบบจะไม่ปรับขนาด ลดลงอย่างเห็นได้ชัด ทันทีที่ผู้ใช้แตะแถบสถานะหรือพื้นที่แถบนำทาง แถบทั้ง 2 แถบจะมองเห็นได้ทั้งหมดบนหน้าจอ ข้อดีของวิธีนี้ ก็คือ แท่งกราฟยังปรากฏอยู่ แต่รายละเอียดเหล่านั้นกลับถูกปิดบังไว้ จึงมอบประสบการณ์สมจริงโดยไม่ต้องแลกกับการเข้าถึงบาร์ต่างๆ
ลดความสว่างของแถบสถานะและแถบนำทาง
คุณสามารถหรี่แสงสถานะและแถบนำทางได้โดยใช้
SYSTEM_UI_FLAG_LOW_PROFILE
แจ้งว่าไม่เหมาะสม ดังนี้
Kotlin
// This example uses decor view, but you can use any visible view. activity?.window?.decorView?.apply { systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE }
Java
// This example uses decor view, but you can use any visible view. View decorView = getActivity().getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE; decorView.setSystemUiVisibility(uiOptions);
ทันทีที่ผู้ใช้แตะสถานะหรือแถบนำทาง ระบบจะล้างธงออก ทำให้แถบสีไม่เจือจาง เมื่อล้างการแจ้งเตือนแล้ว แอปของคุณจำเป็นต้องรีเซ็ต หากต้องการหรี่แสงแถบอีกครั้ง
รูปที่ 1 แสดงภาพในแกลเลอรีที่แถบนำทางมีสีจาง (โปรดทราบว่าแอปแกลเลอรี ซ่อนแถบสถานะทั้งหมด และจะไม่หรี่แสง) โปรดสังเกตว่าแถบนำทาง (ทางขวา ด้านข้างของภาพ) มีจุดสีขาวจางๆ อยู่บนภาพเพื่อแสดงตัวควบคุมทิศทาง ดังนี้
รูปที่ 2 แสดงรูปภาพในแกลเลอรีเดียวกัน แต่มีแถบระบบแสดงอยู่ ดังนี้
แสดงสถานะและแถบนำทาง
หากต้องการล้างการตั้งค่าสถานะแบบเป็นโปรแกรมด้วย
คุณทำได้ setSystemUiVisibility()
ดังนี้
Kotlin
activity?.window?.decorView?.apply { // Calling setSystemUiVisibility() with a value of 0 clears // all flags. systemUiVisibility = 0 }
Java
View decorView = getActivity().getWindow().getDecorView(); // Calling setSystemUiVisibility() with a value of 0 clears // all flags. decorView.setSystemUiVisibility(0);