我一直在嘗試制作片段全屏,但幾乎網路上的每個答案都已棄用方法。甚至 android 官方網站也有一個已棄用的方法
您可以清楚地看到導航和狀態欄仍然存在。
你能分享在片段中獲得全屏的正確和最新的方法嗎?
uj5u.com熱心網友回復:
如果您閱讀ViewCompat.getWindowInsetsController()的檔案,您會發現它只是被棄用了,因為他們希望您改用getInsetsController()。否則,示例代碼可以正常作業。
uj5u.com熱心網友回復:
可以按如下方式使用主題嗎
<style name="AppTheme"parent="Theme.MaterialComponents.DayNight.NoActionBar">
<item name="android:windowNoTitle">true</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
</style>
uj5u.com熱心網友回復:
用于制作片段全屏。
override fun onAttach(context: Context) {
super.onAttach(context)
WindowInsetsControllerCompat(requireActivity().window, requireActivity().window.decorView).apply {
// Hide both the status bar and the navigation bar
hide(WindowInsetsCompat.Type.systemBars())
// Behavior of system bars
systemBarsBehavior = WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
}
}
確保在您的片段中也添加此代碼,它將再次顯示系統欄。
override fun onDetach() {
super.onDetach()
WindowInsetsControllerCompat(requireActivity().window, requireActivity().window.decorView)
.show(WindowInsetsCompat.Type.systemBars())
}
我不知道 WindowInsetsControllerCompat 是如何作業的,但如果有人想隱藏系統欄,那么這會有所幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/521286.html
