View.FitSystemWindows(Rect) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
警告
deprecated
當視窗的內容插入改變時,視圖階層呼叫此裝置,讓它能調整內容以適應該視窗。
[Android.Runtime.Register("fitSystemWindows", "(Landroid/graphics/Rect;)Z", "GetFitSystemWindows_Landroid_graphics_Rect_Handler")]
[System.Obsolete("deprecated")]
protected virtual bool FitSystemWindows(Android.Graphics.Rect? insets);
[<Android.Runtime.Register("fitSystemWindows", "(Landroid/graphics/Rect;)Z", "GetFitSystemWindows_Landroid_graphics_Rect_Handler")>]
[<System.Obsolete("deprecated")>]
abstract member FitSystemWindows : Android.Graphics.Rect -> bool
override this.FitSystemWindows : Android.Graphics.Rect -> bool
參數
- insets
- Rect
視窗的當前內容插入。 在此之前 android.os.Build.VERSION_CODES#JELLY_BEAN ,千萬不要更改插入點,否則你和 Android 都會感到不滿。
傳回
true 如果這個觀點適用於插入部分,且它不應該繼續往下層傳播, false 否則。
- 屬性
備註
當視窗的內容插入改變時,視圖階層呼叫此裝置,讓它能調整內容以適應該視窗。 內容插入會告訴你狀態列、輸入法和其他系統視窗在應用程式視窗中佔用的空間。
你通常不需要處理這個功能,因為預設的視窗裝飾會把它套用到視窗內容上。 如果你使用 #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 或 #SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 不使用,且你的內容可以放在這些系統元素之下。 如果你有想確保 UI 部分未被覆蓋,可以在視圖階層中使用此方法。
此方法的預設實作是將內容內嵌套用到視圖的填充中,消耗該內容(將內嵌點改為 0),然後返回 true。 此行為預設為關閉,但可透過 #setFitsSystemWindows(boolean)開啟。
此函式在階層結構中進行深度優先。 相同的內容內嵌物件會向下傳遞至階層結構,因此對它所做的任何變更都會被所有後續視圖(包括階層中可能較高的視圖,因為這是深度優先遍歷)。 第一個返回為真的視角將中止整個穿越。
預設實作適用於搭配覆蓋整個視窗的容器,允許它在所有邊框上套用適當的內嵌。 如果你需要更複雜的佈局(例如兩個不同的視角系統窗戶,一個在窗戶頂部,一個在底部),你可以覆寫這個方法,隨你喜歡地處理內嵌部分。 請注意,框架所提供的內嵌總是相對於視窗遠端邊緣,並未考慮該視窗中被呼叫視圖的位置。 (事實上,當呼叫此方法時,你還不知道佈局會將視圖放置在哪裡,因為這是在佈局開始前完成的。)
注意:與許多 View 方法不同,此呼叫沒有派遣階段。 如果你在 ViewGroup 中覆寫該通話,並希望讓通話繼續傳給你的子女,你必須確保聯絡 super 實作。
這裡有一個範例佈局,利用安裝系統視窗,在窗戶內設置一個隱藏並顯示的影片畫面。 這也可以搭配像第二個範例(影片播放器)這類 #setSystemUiVisibility(int)程式碼一起使用。
{
此會員已被棄用。 從 API 20 起,使用者會 #dispatchApplyWindowInsets(WindowInsets) 對視圖套用內嵌。 視圖應該覆蓋 #onApplyWindowInsets(WindowInsets) 或用 #setOnApplyWindowInsetsListener(android.view.View.OnApplyWindowInsetsListener) 來實作處理自己的內頁。
Java 文件 android.view.View.fitSystemWindows(android.graphics.Rect)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。