IWindowManager.TransferTouchGesture Método

Definição

Transfira o gesto de toque atualmente em andamento do transferFromToken para o 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

Parâmetros

transferFromToken
InputTransferToken

o InputTransferToken para o gesto ativo no momento

transferToToken
InputTransferToken

o InputTransferToken para o qual transferir o gesto.

Retornos

Se o fluxo de toque foi transferido.

Atributos

Comentários

Transfira o gesto de toque atualmente em andamento do transferFromToken para o transferToToken.

<br> Isso requer que fromToken e toToken estejam associados uns aos outros. A associação pode ser feita de maneiras diferentes, dependendo de como a janela inserida é criada. <ul><li> Criando um SurfaceControlViewHost e passando o host InputTransferToken para SurfaceControlViewHost#SurfaceControlViewHost(Context, Display, InputTransferToken). </li li><> Registrando um SurfaceControl para entrada e passando o token do host para um #registerBatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Choreographer, SurfaceControlInputReceiver) ou .#registerUnbatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Looper, SurfaceControlInputReceiver) </li></ul>

É provável que o host seja um AttachedSurfaceControl para que o token de host possa ser recuperado por meio de AttachedSurfaceControl#getInputTransferToken().

<br> Quando o host deseja transferir o gesto de toque para o inserido, ele pode recuperar o token inserido por meio SurfaceControlViewHost.SurfacePackage#getInputTransferToken() ou usar o valor retornado de um #registerBatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Choreographer, SurfaceControlInputReceiver) ou #registerUnbatchedSurfaceControlInputReceiver(InputTransferToken, SurfaceControl, Looper, SurfaceControlInputReceiver) passar seu próprio token como transferFromToken.

Quando o inserido deseja transferir o gesto de toque para o host, ele pode passar seu próprio token como transferFromToken e usar o host InputTransferToken associado como transferToToken

<br> Quando o toque é transferido, a janela que está recebendo toque recebe um ACTION_CANCEL e não recebe mais eventos de entrada para esse gesto.

A janela transferida para recebe um evento ACTION_DOWN e, em seguida, o restante dos eventos de entrada para esse gesto. Ele não recebe nenhum dos eventos anteriores desse gesto que a janela de origem recebeu.

A API transferTouchGesture só funciona para o gesto atual. Quando um novo gesto chegar, o dispatcher de entrada fará uma nova rodada de teste de ocorrência. Portanto, se a janela do host ainda for a primeira coisa que está sendo tocada, ela receberá o novo gesto novamente. Cabe novamente ao host transferir esse novo gesto para o inserido.

<br> A chamada pode falhar pelos seguintes motivos: <ul><li> Caller tenta transferir o gesto de toque de um token que não tem um gesto ativo. </li><li> O gesto é transferido para um token que não está associado ao transferFromToken. Por exemplo, se o chamador for transferido para um SurfaceControlViewHost não anexado à janela do host por meio de SurfaceView#setChildSurfacePackage(SurfacePackage). </li><li> O gesto ativo é concluído antes da conclusão da transferência, como no caso de um caso de fling. </li></ul>

Documentação Java para android.view.WindowManager.transferTouchGesture(android.window.InputTransferToken, android.window.InputTransferToken).

Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Android Open Source Project e usadas de acordo com os termos descritos na Licença de Atribuição Creative Commons 2.5.

Aplica-se a