View.FitSystemWindows(Rect) Methode

Definition

Achtung

deprecated

Wird von der Ansichtshierarchie aufgerufen, wenn sich die Inhaltsmenge für ein Fenster geändert hat, damit sie ihren Inhalt an diese Fenster anpassen kann.

[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

Parameter

insets
Rect

Aktuelle Inhaltsmengen des Fensters. android.os.Build.VERSION_CODES#JELLY_BEAN Vor Ihnen dürfen die Einsets nicht geändert werden, andernfalls sind Sie und Android unglücklich.

Gibt zurück

true wenn diese Ansicht die Insets angewendet hat und sie nicht weiter nach unten in der Hierarchie verteilt werden sollte, false andernfalls.

Attribute

Hinweise

Wird von der Ansichtshierarchie aufgerufen, wenn sich die Inhaltsmenge für ein Fenster geändert hat, damit sie ihren Inhalt an diese Fenster anpassen kann. Der Inhalt informiert Sie über den Abstand, den die Statusleiste, die Eingabemethode und andere Systemfenster im Fenster der Anwendung verletzen.

Normalerweise müssen Sie mit dieser Funktion nicht umgehen, da die Standardfenster-Dekoration, die anwendungen zugewiesen wird, die Anwendung auf den Inhalt des Fensters übernimmt. Wenn Sie dies verwenden #SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN oder #SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION dies nicht der Fall ist, und Ihre Inhalte können unter diesen Systemelementen platziert werden. Sie können diese Methode dann in Ihrer Ansichtshierarchie verwenden, wenn Sie Teile der Benutzeroberfläche haben, die Sie sicherstellen möchten, dass sie nicht abgedeckt werden.

Die Standardimplementierung dieser Methode wendet einfach die Inhaltsmengen auf den Abstand der Ansicht an, wobei dieser Inhalt verwendet wird (ändern der Insets auf 0) und "true" zurückgegeben wird. Dieses Verhalten ist standardmäßig deaktiviert, kann jedoch über #setFitsSystemWindows(boolean)aktiviert werden.

Die Durchquerung dieser Funktion nach unten in der Hierarchie erfolgt zuerst. Dasselbe Inhaltssets-Objekt wird in der Hierarchie verteilt, sodass alle daran vorgenommenen Änderungen von allen folgenden Ansichten angezeigt werden (einschließlich potenziell höherer Elemente in der Hierarchie, da dies eine erste Durchquerung ist). Die erste Ansicht, die true zurückgibt, bricht die gesamte Durchquerung ab.

Die Standardimplementierung eignet sich gut für eine Situation, in der sie mit einem Container verwendet wird, der das gesamte Fenster abdeckt, sodass sie die entsprechenden Einsets auf den Inhalt aller Kanten anwenden kann. Wenn Sie ein komplizierteres Layout benötigen (z. B. zwei verschiedene Ansichten, die Systemfenster anpassen, eine am oberen Rand des Fensters und eine unten), können Sie die Methode überschreiben und die Einsets behandeln, wie Sie möchten. Beachten Sie, dass die vom Framework bereitgestellten Insets immer relativ zu den weit entfernten Rändern des Fensters sind und nicht die Position der aufgerufenen Ansicht innerhalb dieses Fensters berücksichtigen. (Wenn diese Methode aufgerufen wird, wissen Sie noch nicht, wo das Layout die Ansicht platziert, wie sie vor dem Layout erfolgt.)

Hinweis: Im Gegensatz zu vielen View-Methoden gibt es keine Verteilerphase für diesen Aufruf. Wenn Sie es in einer ViewGroup außer Kraft setzen und zulassen möchten, dass der Aufruf an Ihre untergeordneten Elemente fortgesetzt werden kann, müssen Sie die Superimplementierung aufrufen.

Hier ist ein Beispiellayout, das die Anpassung von Systemfenstern verwendet, um Steuerelemente für eine Videoansicht zu haben, die in den Fensterdesigns platziert wird, die sie ausblendet und anzeigt. Dies kann mit Code wie dem zweiten Beispiel (Videoplayer) verwendet werden, das in #setSystemUiVisibility(int).

{

Dieses Element ist veraltet. Ab API 20 wird #dispatchApplyWindowInsets(WindowInsets) verwendet, um Insets auf Ansichten anzuwenden. Ansichten sollten die Verarbeitung eigener Insets überschreiben #onApplyWindowInsets(WindowInsets) oder implementieren #setOnApplyWindowInsetsListener(android.view.View.OnApplyWindowInsetsListener) .

Java Dokumentation für android.view.View.fitSystemWindows(android.graphics.Rect).

Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.

Gilt für:

Weitere Informationen