Language

IWindowManager.TransferTouchGesture メソッド

定義

現在進行中のタッチ ジェスチャを transferFromToken から 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

パラメーター

transferFromToken
InputTransferToken

現在アクティブなジェスチャの InputTransferToken

transferToToken
InputTransferToken

ジェスチャを転送する InputTransferToken。

返品

タッチ ストリームが転送されたかどうか。

属性

注釈

現在進行中のタッチ ジェスチャを transferFromToken から transferToToken に転送します。

<br> fromToken と toToken が相互に関連付けられている必要があります。 関連付けは、埋め込みウィンドウの作成方法に応じて、さまざまな方法で行うことができます。 <ul><li>SurfaceControlViewHost を作成し、ホストの InputTransferToken を渡して SurfaceControlViewHost#SurfaceControlViewHost(Context, Display, InputTransferToken)します。 </li><li> 入力用に SurfaceControl を登録し、ホストのトークンを #registerBatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Choreographer, SurfaceControlInputReceiver) または #registerUnbatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Looper, SurfaceControlInputReceiver)に渡します。 </li></ul>

ホストは AttachedSurfaceControl である可能性が高いので、ホスト トークンは AttachedSurfaceControl#getInputTransferToken()経由で取得できます。

<br> ホストがタッチ ジェスチャを埋め込みオブジェクトに転送する場合は、 SurfaceControlViewHost.SurfacePackage#getInputTransferToken() 経由で埋め込みトークンを取得するか、 #registerBatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Choreographer, SurfaceControlInputReceiver) または #registerUnbatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Looper, SurfaceControlInputReceiver) から返された値を使用して、独自のトークンを transferFromToken として渡すことができます。

埋め込みでタッチ ジェスチャをホストに転送する場合は、独自のトークンを transferFromToken として渡し、関連付けられているホストの InputTransferToken を transferToToken として使用できます。

<br> タッチが転送されると、現在タッチを受け取っているウィンドウはACTION_CANCELを取得し、このジェスチャのそれ以上の入力イベントを受け取りません。

転送されたウィンドウは、ACTION_DOWN イベントを受け取り、その後、このジェスチャの入力イベントの残りの部分を受け取ります。 元のウィンドウが受信したこのジェスチャの以前のイベントは受信しません。

transferTouchGesture API は、現在のジェスチャに対してのみ機能します。 新しいジェスチャが到着すると、入力ディスパッチャーは新しいヒット テストを実行します。 そのため、ホスト ウィンドウがまだ最初にタッチされている場合は、新しいジェスチャを再び受け取ります。 この新しいジェスチャを埋め込み済みに転送するのは、ホスト次第です。

<br> 呼び出しは、 <ul><li> 呼び出し元がアクティブなジェスチャを持たないトークンからタッチ ジェスチャを転送しようとしたときに失敗する可能性があります。 </li><li> ジェスチャは、transferFromToken に関連付けられていないトークンに転送されます。 たとえば、呼び出し元がSurfaceControlViewHost経由でホスト ウィンドウに接続されていないSurfaceView#setChildSurfacePackage(SurfacePackage)に転送する場合です。 </li><li> 転送が完了する前にアクティブなジェスチャが完了します (fling の場合など)。 </li></ul>

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象