IWindowManager.TransferTouchGesture Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Übertragen Sie die aktuell ausgeführte Touchgeste von transferFromToken in das transferToToken.
[Android.Runtime.Register("transferTouchGesture", "(Landroid/window/InputTransferToken;Landroid/window/InputTransferToken;)Z", "GetTransferTouchGesture_Landroid_window_InputTransferToken_Landroid_window_InputTransferToken_Handler:Android.Views.IWindowManager, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=35)]
public virtual bool TransferTouchGesture(Android.Window.InputTransferToken transferFromToken, Android.Window.InputTransferToken transferToToken);
[<Android.Runtime.Register("transferTouchGesture", "(Landroid/window/InputTransferToken;Landroid/window/InputTransferToken;)Z", "GetTransferTouchGesture_Landroid_window_InputTransferToken_Landroid_window_InputTransferToken_Handler:Android.Views.IWindowManager, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null", ApiSince=35)>]
abstract member TransferTouchGesture : Android.Window.InputTransferToken * Android.Window.InputTransferToken -> bool
override this.TransferTouchGesture : Android.Window.InputTransferToken * Android.Window.InputTransferToken -> bool
Parameter
- transferFromToken
- InputTransferToken
InputTransferToken für die derzeit aktive Geste
- transferToToken
- InputTransferToken
das InputTransferToken, an das die Geste übertragen werden soll.
Gibt zurück
Gibt an, ob der Touchdatenstrom übertragen wurde.
- Attribute
Hinweise
Übertragen Sie die aktuell ausgeführte Touchgeste von transferFromToken in das transferToToken.
<br> Dies erfordert, dass das fromToken und toToken miteinander verknüpft sind. Die Zuordnung kann je nach Erstellung des eingebetteten Fensters auf unterschiedliche Weise erfolgen.
<ul><li> Creating a SurfaceControlViewHost and passing the host's InputTransferToken for SurfaceControlViewHost#SurfaceControlViewHost(Context, Display, InputTransferToken).
</li li><> Registrieren eines SurfaceControl für die Eingabe und Übergabe des Hosttokens an ein #registerBatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Choreographer, SurfaceControlInputReceiver) oder .#registerUnbatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Looper, SurfaceControlInputReceiver)
</li></ul>
Der Host ist wahrscheinlich ein AttachedSurfaceControl Hosttoken, sodass das Hosttoken über AttachedSurfaceControl#getInputTransferToken()abgerufen werden kann.
<br> Wenn der Host touchgeste in das eingebettete Übertragen möchte, kann es das eingebettete Token über SurfaceControlViewHost.SurfacePackage#getInputTransferToken() oder den von ihm #registerBatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Choreographer, SurfaceControlInputReceiver) zurückgegebenen Wert abrufen oder #registerUnbatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Looper, SurfaceControlInputReceiver) sein eigenes Token als transferFromToken übergeben.
Wenn der eingebettete Benutzer die Touchgeste an den Host übertragen möchte, kann es ein eigenes Token als transferFromToken übergeben und die zugehörigen Hosts InputTransferToken als transferToToken verwenden.
<br> Wenn die Toucheingabe übertragen wird, erhält das Fenster, das derzeit per Toucheingabe empfangen wird, eine ACTION_CANCEL und empfängt keine weiteren Eingabeereignisse für diese Geste.
Das übertragene Fenster empfängt ein ACTION_DOWN Ereignis und dann den Rest der Eingabeereignisse für diese Geste. Es empfängt keine der vorherigen Ereignisse dieser Geste, die das ursprüngliche Fenster empfangen hat.
Die transferTouchGesture-API funktioniert nur für die aktuelle Geste. Wenn eine neue Geste eintrifft, führt der Eingabe-Dispatcher eine neue Runde der Treffertests durch. Wenn das Hostfenster also immer noch das erste ist, was berührt wird, erhält es die neue Geste erneut. Es ist erneut an der Host, diese neue Geste auf den eingebetteten Zu übertragen.
<br> Der Aufruf kann aus den folgenden Gründen fehlschlagen: <ul><li> Caller versucht, die Touchgeste von einem Token zu übertragen, das keine aktive Geste hat.
</li Li><> Die Geste wird an ein Token übertragen, das nicht mit dem transferFromToken verknüpft ist. Wenn der Anrufer z. B. an ein SurfaceControlViewHost nicht an das Hostfenster SurfaceView#setChildSurfacePackage(SurfacePackage)angefügtes Überträgt.
</li Li><> Die aktive Geste wird abgeschlossen, bevor die Übertragung abgeschlossen ist, z. B. bei einem Fling.
</li></ul>
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.