Idioma

AccessibilityNodeProvider Classe

Definição

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

[Android.Runtime.Register("android/view/accessibility/AccessibilityNodeProvider", DoNotGenerateAcw=true)]
public abstract class AccessibilityNodeProvider : Java.Lang.Object
[<Android.Runtime.Register("android/view/accessibility/AccessibilityNodeProvider", DoNotGenerateAcw=true)>]
type AccessibilityNodeProvider = class
    inherit Object
Herança
AccessibilityNodeProvider
Atributos

Comentários

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade. Uma hierarquia de exibição virtual é uma árvore de exibições imaginárias que é relatada como parte da hierarquia de exibição quando um AccessibilityService conteúdo da janela é explorado. Como a árvore de exibição virtual não existe, essa classe é responsável por gerenciar os AccessibilityNodeInfos que descrevem essa árvore para os serviços de acessibilidade. </p>

O principal caso de uso dessas APIs é habilitar uma exibição personalizada que desenha conteúdo complexo, por exemplo, uma grade de calendário mensal, a ser apresentada como uma árvore de nós lógicos, por exemplo, dias de mês cada um contendo eventos, transmitindo assim sua estrutura lógica.

Um caso de uso típico é substituir View#getAccessibilityNodeProvider() o Modo de Exibição que é uma raiz de uma hierarquia de Exibição virtual para retornar uma instância dessa classe. Nesse caso, essa instância é responsável pelo gerenciamento AccessibilityNodeInfode s que descrevem a subárvore virtual com raiz no Modo de Exibição, incluindo a que representa o próprio Modo de Exibição. Da mesma forma, a instância retornada é responsável por executar ações de acessibilidade em qualquer exibição virtual ou no próprio modo de exibição raiz. Por exemplo:

"observação">b Observação:</b> Considere usar um <c>androidx.customview.widget.ExploreByTouchHelper</c>, uma extensão de utilitário do AccessibilityNodeProvider, para simplificar muitos aspectos do fornecimento de informações para serviços de acessibilidade e gerenciamento do foco de acessibilidade.<> </aside><div><class="ds-selector-tabs"><section><h3 id="kotlin">Kotlin</h3>

// "view" is the View instance on which this class performs accessibility functions.
            class MyCalendarViewAccessibilityDelegate(
                  private var view: MyCalendarView) : AccessibilityDelegate() {
                override fun getAccessibilityNodeProvider(host: View): AccessibilityNodeProvider {
                    return object : AccessibilityNodeProvider() {
                        override fun createAccessibilityNodeInfo(virtualViewId: Int):
                                AccessibilityNodeInfo? {
                            when (virtualViewId) {
<var>host-view-id</var> -&gt; {
                                    val node = AccessibilityNodeInfo.obtain(view)
                                    node.addChild(view, <var>child-view-id</var>)
                                    // Set other attributes like screenReaderFocusable
                                    // and contentDescription.
                                    return node
                                }
<var>child-view-id</var> -&gt; {
                                    val node = AccessibilityNodeInfo
                                            .obtain(view, virtualViewId)
                                    node.setParent(view)
                                    node.addAction(ACTION_SCROLL_UP)
                                    node.addAction(ACTION_SCROLL_DOWN)
                                    // Set other attributes like focusable and visibleToUser.
                                    node.setBoundsInScreen(
                                            Rect(<var>coords-of-edges-relative-to-screen</var>))
                                    return node
                                }
                                else -&gt; return null
                            }
                        }

                        override fun performAction(
                            virtualViewId: Int,
                            action: Int,
                            arguments: Bundle
                        ): Boolean {
                            if (virtualViewId == <var>host-view-id</var>) {
                                return view.performAccessibilityAction(action, arguments)
                            }
                            when (action) {
                                ACTION_SCROLL_UP.id -&gt; {
                                    // Implement logic in a separate method.
                                    navigateToPreviousMonth()

                                    return true
                                }
                                ACTION_SCROLL_DOWN.id -&gt;
                                    // Implement logic in a separate method.
                                    navigateToNextMonth()

                                    return true
                                else -&gt; return false
                            }
                        }
                    }
                }
            }

</section><section><h3 id="java">Java</h3>

final class MyCalendarViewAccessibilityDelegate extends AccessibilityDelegate {
                // The View instance on which this class performs accessibility functions.
                private final MyCalendarView view;

                MyCalendarViewAccessibilityDelegate(MyCalendarView view) {
                    this.view = view;
                }

                &#64;Override
                public AccessibilityNodeProvider getAccessibilityNodeProvider(View host) {
                    return new AccessibilityNodeProvider() {
                        &#64;Override
                        &#64;Nullable
                        public AccessibilityNodeInfo createAccessibilityNodeInfo(int virtualViewId) {
                            if (virtualViewId == <var>host-view-id</var>) {
                                AccessibilityNodeInfo node = AccessibilityNodeInfo.obtain(view);
                                node.addChild(view, <var>child-view-id</var>);
                                // Set other attributes like screenReaderFocusable and contentDescription.
                                return node;
                            } else if (virtualViewId == <var>child-view-id</var>) {
                                AccessibilityNodeInfo node =
                                    AccessibilityNodeInfo.obtain(view, virtualViewId);
                                node.setParent(view);
                                node.addAction(ACTION_SCROLL_UP);
                                node.addAction(ACTION_SCROLL_DOWN);
                                // Set other attributes like focusable and visibleToUser.
                                node.setBoundsInScreen(
                                    new Rect(<var>coordinates-of-edges-relative-to-screen</var>));
                                return node;
                            } else {
                                return null;
                            }
                        }

                        &#64;Override
                        public boolean performAction(int virtualViewId, int action, Bundle arguments) {
                            if (virtualViewId == <var>host-view-id</var>) {
                                return view.performAccessibilityAction(action, arguments);
                            }

                            if (action == ACTION_SCROLL_UP.getId()) {
                                // Implement logic in a separate method.
                                navigateToPreviousMonth();

                                return true;
                            } else if (action == ACTION_SCROLL_DOWN.getId()) {
                                // Implement logic in a separate method.
                                navigateToNextMonth();

                                return true;
                            } else {
                                return false;
                            }
                        }
                    };
                }
            }

</section></div></div>

Java documentação para android.view.accessibility.AccessibilityNodeProvider.

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

Construtores

Nome Description
AccessibilityNodeProvider()
AccessibilityNodeProvider(IntPtr, JniHandleOwnership)

Um construtor usado ao criar representações gerenciadas de objetos JNI; chamado pelo runtime.

Campos

Nome Description
HostViewId

A ID virtual do modo de exibição de hospedagem.

Propriedades

Nome Description
Class

Retorna a classe de tempo de execução deste Object.

(Herdado de Object)
Handle

O identificador para a instância subjacente do Android.

(Herdado de Object)
JniIdentityHashCode

Obtém o código de hash de identidade atribuído a esse par Java pelo runtime de interoperabilidade.

(Herdado de Object)
JniManagedPeerState

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
JniPeerMembers

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

PeerReference

Obtém a referência de objeto JNI para este par Java.

(Herdado de Object)
ThresholdClass

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

ThresholdType

Essa API dá suporte à infraestrutura do Mono para Android e não se destina a ser usada diretamente do seu código.

Métodos

Nome Description
AddExtraDataToAccessibilityNodeInfo(Int32, AccessibilityNodeInfo, String, Bundle)

Adiciona dados extras a uma solicitação AccessibilityNodeInfo explícita para os dados adicionais.

Clone()

Cria e retorna uma cópia desse objeto.

(Herdado de Object)
Construct(JniObjectReference, JniObjectReferenceOptions)

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
CreateAccessibilityNodeInfo(Int32)

Retorna um modo de exibição AccessibilityNodeInfo virtual que representa, como um descendente do modo de exibição do host, com o modo de exibição de host determinado virtualViewId ou o próprio host, se virtualViewId for igual a #HOST_VIEW_ID.

Dispose()

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
Dispose(Boolean)

Libera os recursos mantidos por esse par Java.

(Herdado de Object)
DisposeUnlessReferenced()

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
Equals(Object)

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
Equals(Object)

Indica se algum outro objeto é "igual a" este.

(Herdado de Object)
FindAccessibilityNodeInfosByText(String, Int32)

Localiza AccessibilityNodeInfos por texto.

FindFocus(NodeFocus)

Localize o modo de exibição virtual, como um descendente do modo de exibição de host, que tem o tipo de foco especificado.

GetHashCode()

Retorna um valor de código hash para o objeto.

(Herdado de Object)
JavaFinalize()

Chamado pelo coletor de lixo em um objeto quando a coleta de lixo determina que não há mais referências ao objeto.

(Herdado de Object)
Notify()

Ativa um único thread que está aguardando no monitor desse objeto.

(Herdado de Object)
NotifyAll()

Ativa todos os threads que estão aguardando no monitor deste objeto.

(Herdado de Object)
PerformAction(Int32, Action, Bundle)

Executa uma ação de acessibilidade em um modo de exibição virtual, como um descendente do modo de exibição do host, com o modo de exibição de virtualViewId host determinado ou o próprio host, se virtualViewId for igual a #HOST_VIEW_ID.

PerformAction(Int32, GlobalAction, Bundle)

Executa uma ação de acessibilidade em um modo de exibição virtual, ou seja, um descendente do modo de exibição do host, com o modo de exibição de virtualViewId host determinado ou o próprio host, se virtualViewId for igual a HostViewId.

SetHandle(IntPtr, JniHandleOwnership)

Define a propriedade Handle

(Herdado de Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
ToArray<T>()

Cria uma matriz gerenciada com base nesse wrapper de matriz Java.

(Herdado de Object)
ToString()

Retorna uma representação de cadeia de caracteres do objeto.

(Herdado de Object)
UnregisterFromRuntime()

Cancela o registro desse par Java do runtime de interoperabilidade.

(Herdado de Object)
Wait()

Faz com que o thread atual aguarde até ser despertado, normalmente por ser <notificado/em> ou <em>interrompido</em>.<>

(Herdado de Object)
Wait(Int64, Int32)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)
Wait(Int64)

Faz com que o thread atual aguarde até que ele seja despertado, normalmente por ser <>notificado</em> ou <em>interrompido</em>, ou até que uma determinada quantidade de tempo real tenha decorrido.

(Herdado de Object)

Implantações explícitas de interface

Nome Description
IJavaPeerable.Disposed()

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
IJavaPeerable.Finalized()

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

(Herdado de JavaObject)

Métodos de Extensão

Nome Description
GetJniTypeName(IJavaPeerable)

Obtém o nome JNI do tipo da instância self.

JavaAs<TResult>(IJavaPeerable)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

JavaCast<TResult>(IJavaObject)

Executa uma conversão de tipo verificada pelo tempo de execução do Android.

JavaCast<TResult>(IJavaObject)

Essa classe é o contrato que um cliente deve implementar para habilitar o suporte de uma hierarquia de exibição virtual com raiz em um determinado modo de exibição para fins de acessibilidade.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Tente coagir a digitar selfTResult, verificando se a coerção é válida no lado Java.

Aplica-se a