หรี่แสงแถบระบบ (เลิกใช้งานแล้ว)

บทเรียนนี้จะอธิบายวิธีหรี่แถบระบบ (ซึ่งก็คือสถานะและการนำทาง ใน 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 แสดงภาพในแกลเลอรีที่แถบนำทางมีสีจาง (โปรดทราบว่าแอปแกลเลอรี ซ่อนแถบสถานะทั้งหมด และจะไม่หรี่แสง) โปรดสังเกตว่าแถบนำทาง (ทางขวา ด้านข้างของภาพ) มีจุดสีขาวจางๆ อยู่บนภาพเพื่อแสดงตัวควบคุมทิศทาง ดังนี้

แถบระบบ

รูปที่ 1 แถบระบบสีจาง

รูปที่ 2 แสดงรูปภาพในแกลเลอรีเดียวกัน แต่มีแถบระบบแสดงอยู่ ดังนี้

แถบระบบ

รูปที่ 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);