IWindowManager.TransferTouchGesture Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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>
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.