หรี่แสงแถบระบบ (เลิกใช้งานแล้ว)
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
บทเรียนนี้จะอธิบายวิธีหรี่แถบระบบ (ซึ่งก็คือสถานะและการนำทาง
ใน 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);
ตัวอย่างเนื้อหาและโค้ดในหน้าเว็บนี้ขึ้นอยู่กับใบอนุญาตที่อธิบายไว้ในใบอนุญาตการใช้เนื้อหา Java และ OpenJDK เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-07-27 UTC
[[["เข้าใจง่าย","easyToUnderstand","thumb-up"],["แก้ปัญหาของฉันได้","solvedMyProblem","thumb-up"],["อื่นๆ","otherUp","thumb-up"]],[["ไม่มีข้อมูลที่ฉันต้องการ","missingTheInformationINeed","thumb-down"],["ซับซ้อนเกินไป/มีหลายขั้นตอนมากเกินไป","tooComplicatedTooManySteps","thumb-down"],["ล้าสมัย","outOfDate","thumb-down"],["ปัญหาเกี่ยวกับการแปล","translationIssue","thumb-down"],["ตัวอย่าง/ปัญหาเกี่ยวกับโค้ด","samplesCodeIssue","thumb-down"],["อื่นๆ","otherDown","thumb-down"]],["อัปเดตล่าสุด 2025-07-27 UTC"],[],[],null,["# Dim the system bars (deprecated)\n\n| **Deprecated:** [setSystemUiVisibility](/reference/android/view/View#setSystemUiVisibility(int)) is deprecated in API Level 30\n\nThis lesson describes how to dim the system bars (that is, the status and the navigation\nbars) on Android 4.0 (API level 14) and higher. Android does not provide a built-in way to dim the\nsystem bars on earlier versions.\n\nWhen you use this approach, the content doesn't resize, but the icons in the system bars\nvisually recede. As soon as the user touches either the status bar or the navigation bar area of\nthe screen, both bars become fully visible. The advantage of this\napproach is that the bars are still present but their details are obscured, thus\ncreating an immersive experience without sacrificing easy access to the bars.\n\nDim the Status and Navigation Bars\n----------------------------------\n\nYou can dim the status and navigation bars using the\n[SYSTEM_UI_FLAG_LOW_PROFILE](/reference/android/view/View#SYSTEM_UI_FLAG_LOW_PROFILE) flag, as follows: \n\n### Kotlin\n\n```kotlin\n// This example uses decor view, but you can use any visible view.\nactivity?.window?.decorView?.apply {\n systemUiVisibility = View.SYSTEM_UI_FLAG_LOW_PROFILE\n}\n```\n\n### Java\n\n```java\n// This example uses decor view, but you can use any visible view.\nView decorView = getActivity().getWindow().getDecorView();\nint uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;\ndecorView.setSystemUiVisibility(uiOptions);\n```\n\nAs soon as the user touches the status or navigation bar, the flag is cleared,\ncausing the bars to be undimmed. Once the flag has been cleared, your app needs to reset\nit if you want to dim the bars again.\n\nFigure 1 shows a gallery image in which the navigation bar is dimmed (note that the Gallery app\ncompletely hides the status bar; it doesn't dim it). Notice that the navigation bar (right\nside of the image) has faint white dots on it to represent the navigation controls:\n\n\n**Figure 1.** Dimmed system bars.\n\nFigure 2 shows the same gallery image, but with the system bars displayed:\n\n\n**Figure 2.** Visible system bars.\n\nReveal the Status and Navigation Bars\n-------------------------------------\n\nIf you want to programmatically clear flags set with\n[setSystemUiVisibility()](/reference/android/view/View#setSystemUiVisibility(int)), you can do so\nas follows: \n\n### Kotlin\n\n```kotlin\nactivity?.window?.decorView?.apply {\n // Calling setSystemUiVisibility() with a value of 0 clears\n // all flags.\n systemUiVisibility = 0\n}\n```\n\n### Java\n\n```java\nView decorView = getActivity().getWindow().getDecorView();\n// Calling setSystemUiVisibility() with a value of 0 clears\n// all flags.\ndecorView.setSystemUiVisibility(0);\n```"]]