คุณเปิดใช้การแสดงผลแบบไร้ขอบในแอปได้โดยเรียก
enableEdgeToEdge
ซึ่งควรเพียงพอสำหรับแอปส่วนใหญ่ คู่มือนี้จะอธิบายวิธีเปิดใช้
ขอบถึงขอบหากแอปของคุณจำเป็นต้องทำเช่นนั้นโดยไม่ต้องใช้ enableEdgeToEdge
จัดวางแอปในโหมดเต็มหน้าจอ
ใช้ WindowCompat.setDecorFitsSystemWindows(window,
false)
เพื่อจัดวางแอปไว้ด้านหลังแถบระบบ ดังที่แสดงในตัวอย่างโค้ดต่อไปนี้
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) WindowCompat.setDecorFitsSystemWindows(window, false) }
Java
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WindowCompat.setDecorFitsSystemWindows(getWindow(), false); }
เปลี่ยนสีของแถบระบบ
เมื่อทำงานในเลย์เอาต์แบบขอบจรดขอบ แอปของคุณต้องเปลี่ยนสีของ แถบระบบเพื่อให้เนื้อหาด้านล่างมองเห็นได้ หลังจากที่แอป ทำตามขั้นตอนนี้แล้ว ระบบจะจัดการการป้องกันภาพทั้งหมดของอินเทอร์เฟซผู้ใช้ ในโหมดการนำทางด้วยท่าทางสัมผัสและในโหมดปุ่ม
- โหมดการนำทางด้วยท่าทางสัมผัส: ระบบจะใช้การปรับสีแบบไดนามิก ซึ่งเนื้อหาของแถบระบบจะเปลี่ยนสีตามเนื้อหาที่อยู่ด้านหลัง ในตัวอย่างต่อไปนี้ แถบเลื่อนในแถบนำทางจะเปลี่ยนเป็นสีเข้มเมื่ออยู่เหนือเนื้อหาสว่าง และเปลี่ยนเป็นสีอ่อนเมื่ออยู่เหนือเนื้อหาเข้ม
- โหมดปุ่ม: ระบบจะใช้เลเยอร์สีดำโปร่งแสง ด้านหลังแถบระบบ (สำหรับ API ระดับ 29 ขึ้นไป) หรือแถบระบบโปร่งใส (สำหรับ API ระดับ 28 ลงไป)

- สีเนื้อหาแถบสถานะ: ควบคุมสีของเนื้อหาแถบสถานะ เช่น เวลาและไอคอน

คุณสามารถแก้ไขไฟล์ themes.xml
เพื่อตั้งค่าสีของแถบนำทาง และตั้งค่าแถบสถานะให้โปร่งใสและสีเนื้อหาของแถบสถานะเป็นสีเข้มได้ (ไม่บังคับ)
<!-- values-v29/themes.xml -->
<style name="Theme.MyApp">
<item name="android:navigationBarColor">
@android:color/transparent
</item>
<!-- Optional: set to transparent if your app is drawing behind the status bar. -->
<item name="android:statusBarColor">
@android:color/transparent
</item>
<!-- Optional: set for a light status bar with dark content. -->
<item name="android:windowLightStatusBar">
true
</item>
</style>
คุณใช้
WindowInsetsController
API
ได้โดยตรง แต่เราขอแนะนำอย่างยิ่งให้ใช้ Support Library
WindowInsetsControllerCompat
หากเป็นไปได้ คุณสามารถใช้ WindowInsetsControllerCompat
API แทน
theme.xml
เพื่อควบคุมสีเนื้อหาของแถบสถานะได้ โดยใช้ฟังก์ชัน
setAppearanceLightNavigationBars()
และส่ง true
เพื่อเปลี่ยนสีพื้นหน้าของการนำทางเป็น
สีอ่อน หรือ false
เพื่อเปลี่ยนกลับเป็นสีเริ่มต้น
Kotlin
val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView) windowInsetsController?.isAppearanceLightNavigationBars = true
Java
WindowInsetsControllerCompat windowInsetsController = ViewCompat.getWindowInsetsController(getWindow().getDecorView()); if (windowInsetsController == null) { return; } windowInsetsController.setAppearanceLightNavigationBars(true);