語言

AccessibilityService.AttachAccessibilityOverlayToWindow 方法

定義

在指定的視窗上附加一個無障礙覆蓋 android.view.SurfaceControl 層。

[Android.Runtime.Register("attachAccessibilityOverlayToWindow", "(ILandroid/view/SurfaceControl;)V", "GetAttachAccessibilityOverlayToWindow_ILandroid_view_SurfaceControl_Handler", ApiSince=34)]
public virtual void AttachAccessibilityOverlayToWindow(int accessibilityWindowId, Android.Views.SurfaceControl sc);
[<Android.Runtime.Register("attachAccessibilityOverlayToWindow", "(ILandroid/view/SurfaceControl;)V", "GetAttachAccessibilityOverlayToWindow_ILandroid_view_SurfaceControl_Handler", ApiSince=34)>]
abstract member AttachAccessibilityOverlayToWindow : int * Android.Views.SurfaceControl -> unit
override this.AttachAccessibilityOverlayToWindow : int * Android.Views.SurfaceControl -> unit

參數

accessibilityWindowId
Int32

視窗 ID,來自 AccessibilityWindowInfo#getId()。

sc
SurfaceControl

SurfaceControl 則包含覆蓋內容

屬性

備註

在指定的視窗上附加一個無障礙覆蓋 android.view.SurfaceControl 層。 這種方法應該用於當你希望覆蓋層隨著父視窗移動和調整大小而移動和調整大小時。

一般來說,無障礙覆蓋層會是一個 android.view.View. 要將檢視 android.view.SurfaceControl嵌入 ,建立 並 android.view.SurfaceControlViewHost 使用 android.view.SurfaceControlViewHost#setView。 接著透過呼叫 viewHost.getSurfacePackage().getSurfaceControl()來取得 SurfaceControl。

要移除此覆蓋層並釋放相關資源,請使用 new SurfaceControl.Transaction().reparent(sc, null).apply();。

如果指定的覆蓋層已經附加到指定的視窗上,這個方法就不會有任何動作。 如果指定的覆蓋層已經附加到先前的視窗,這個函式會將覆蓋層轉移到新的視窗。 服務可以附加多個疊加層。 請使用 new SurfaceControl.Transaction().setLayer(sc, layer).apply();。 協調螢幕上疊加層的順序。

Java 文件 android.accessibilityservice.AccessibilityService.attachAccessibilityOverlayToWindow(int, android.view.SurfaceControl)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於