เนื้อหาบางอย่างสามารถรับชมได้แบบเต็มหน้าจอได้ดีที่สุดโดยไม่มีสัญญาณบอกสถานะใดๆ หรือแถบนำทาง ตัวอย่างเช่น วิดีโอ เกม รูปภาพ แกลเลอรี หนังสือ และสไลด์งานนำเสนอ ซึ่งเรียกว่า โหมดใหญ่พิเศษ หน้านี้จะแสดงวิธีที่คุณสามารถดึงดูดผู้ใช้ให้มีส่วนร่วมอย่างลึกซึ้งยิ่งขึ้นด้วย เนื้อหาแบบเต็มหน้าจอ
โหมดสมจริงช่วยให้ผู้ใช้หลีกเลี่ยงการออกโดยไม่ตั้งใจระหว่างเล่นเกมและ มอบประสบการณ์ที่สมจริงในการเพลิดเพลินกับรูปภาพ วิดีโอ และหนังสือ อย่างไรก็ตาม โปรดระมัดระวังว่าผู้ใช้เข้าและออกจากแอปเพื่อตรวจดูการแจ้งเตือนบ่อยเพียงใด เพื่อทำการค้นหาแบบฉับพลันหรือดำเนินการอื่นๆ เพราะโหมดใหญ่พิเศษ ทำให้ผู้ใช้สูญเสียความสะดวกในการเข้าถึงการนำทางของระบบ โปรดใช้โหมดใหญ่พิเศษเท่านั้น เมื่อประโยชน์ที่ผู้ใช้ได้รับมีมากกว่าแค่การใช้หน้าจอเพิ่มเติม พื้นที่ทำงาน
ใช้ WindowInsetsControllerCompat.hide()
เพื่อซ่อนแถบระบบและ WindowInsetsControllerCompat.show()
เพื่อนำพวกเขากลับมา
ตัวอย่างต่อไปนี้แสดงตัวอย่างการกำหนดค่าปุ่มเพื่อซ่อนและแสดง แถบระบบ
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { ... val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView) // Configure the behavior of the hidden system bars. windowInsetsController.systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener(window.decorView) { view, windowInsets -> // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()) } } else { binding.toggleFullscreenButton.setOnClickListener { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()) } } ViewCompat.onApplyWindowInsets(view, windowInsets) } }
Java
@Override protected void onCreate(Bundle savedInstanceState) { ... WindowInsetsControllerCompat windowInsetsController = WindowCompat.getInsetsController(getWindow(), getWindow().getDecorView()); // Configure the behavior of the hidden system bars. windowInsetsController.setSystemBarsBehavior( WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE ); // Add a listener to update the behavior of the toggle fullscreen button when // the system bars are hidden or revealed. ViewCompat.setOnApplyWindowInsetsListener( getWindow().getDecorView(), (view, windowInsets) -> { // You can hide the caption bar even when the other system bars are visible. // To account for this, explicitly check the visibility of navigationBars() // and statusBars() rather than checking the visibility of systemBars(). if (windowInsets.isVisible(WindowInsetsCompat.Type.navigationBars()) || windowInsets.isVisible(WindowInsetsCompat.Type.statusBars())) { binding.toggleFullscreenButton.setOnClickListener(v -> { // Hide both the status bar and the navigation bar. windowInsetsController.hide(WindowInsetsCompat.Type.systemBars()); }); } else { binding.toggleFullscreenButton.setOnClickListener(v -> { // Show both the status bar and the navigation bar. windowInsetsController.show(WindowInsetsCompat.Type.systemBars()); }); } return ViewCompat.onApplyWindowInsets(view, windowInsets); }); }
นอกจากนี้คุณยังระบุประเภทของแถบระบบที่จะซ่อนและกำหนดได้ พฤติกรรมเมื่อผู้ใช้โต้ตอบกับอุปกรณ์
ระบุแถบระบบที่จะซ่อน
หากต้องการระบุประเภทแถบระบบที่จะซ่อน ให้ส่งผ่านพารามิเตอร์ใดพารามิเตอร์หนึ่งต่อไปนี้
ไปยัง WindowInsetsControllerCompat.hide()
ใช้
WindowInsetsCompat.Type.systemBars()
เพื่อ ซ่อนแถบระบบทั้งสองใช้
WindowInsetsCompat.Type.statusBars()
เพื่อ ซ่อนเฉพาะแถบสถานะใช้
WindowInsetsCompat.Type.navigationBars()
เพื่อ ซ่อนเฉพาะแถบนำทาง
ระบุการทำงานของแถบระบบที่ซ่อนอยู่
ใช้ WindowInsetsControllerCompat.setSystemBarsBehavior()
เพื่อระบุลักษณะการทำงานของแถบระบบที่ซ่อนอยู่เมื่อผู้ใช้โต้ตอบ
ใช้
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_TOUCH
เพื่อแสดงแถบระบบที่ซ่อนอยู่ในการโต้ตอบของผู้ใช้ใดๆ ใน จอแสดงผลใช้
WindowInsetsControllerCompat.BEHAVIOR_SHOW_BARS_BY_SWIPE
เพื่อแสดงแถบระบบที่ซ่อนอยู่เมื่อแสดงด้วยท่าทางสัมผัสของระบบ เช่น การปัดจาก ขอบของหน้าจอที่มีการซ่อนแถบไว้ใช้
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
เพื่อแสดงแถบระบบที่ซ่อนอยู่ชั่วคราวด้วยท่าทางสัมผัสของระบบ เช่น ปัดจากขอบของหน้าจอตรงตำแหน่งที่ซ่อนแถบไว้ เหล่านี้ แถบระบบชั่วคราวซ้อนทับเนื้อหาแอปของคุณ อาจมีระดับ ความโปร่งใส และจะซ่อนไว้โดยอัตโนมัติหลังจากหมดเวลาสั้นๆ