ตั้งค่า Fragment เป็น FullScreen ในขณะที่ใช้ Navigation Component - Android

Aug 20 2020

ฉันเพิ่งแปลงแอปเป็นสถาปัตยกรรมกิจกรรมเดี่ยวและพยายามตั้งค่าส่วนหนึ่งเป็นแบบเต็มหน้าจอ โค้ดเต็มหน้าจอมาตรฐานสำหรับกิจกรรมใช้ไม่ได้กับแฟรกเมนต์

final int flags =
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                    | View.SYSTEM_UI_FLAG_FULLSCREEN
                    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY;

ฉันพบนี้Android ตั้งแบบเต็มหน้าจอจากชิ้นส่วน แต่การตั้งค่าเป็น FLAG_LAYOUT_NO_LIMITS ทำให้ PagerSnapHelper ในแฟรกเมนต์กระโดดไปมาเมื่อสลับระหว่าง FLAG_LAYOUT_NO_LIMITS และเพิกถอน

คำถามของฉันคือมีวิธีอื่นอีกไหมในการตั้งค่าส่วนเป็นแบบเต็มหน้าจอโดยไม่ใช้ FLAG_LAYOUT_NO_LIMITS

คำตอบ

3 ianhanniballake Aug 21 2020 at 04:55

คุณไม่จำเป็นต้องใช้FLAG_LAYOUT_NO_LIMITSหรือไม่ควรใช้fitsSystemWindows="true"ทั่วโลกในชั้นกิจกรรมของคุณนั่นคือสิ่งที่จะป้องกันไม่ให้ส่วนของคุณเต็มหน้าจอ ให้เพิ่มเฉพาะfitsSystemWindowsชิ้นส่วน / ส่วนประกอบแต่ละส่วนที่อาจทับซ้อนกับแถบสถานะ / ระบบ วิธีนี้จะช่วยให้มั่นใจได้ว่าส่วนเต็มหน้าจอของคุณจะสามารถใช้งานได้เต็มขนาดและไม่แทรกจากขอบ