En el Renderer de Android, Xamarin Frame DescendantFocusability se traduce como DescendantFocusability en el marco de Xamarin.
¿Hay alguna forma de establecer el DescendantFocusability en un Frame dentro del renderizador personalizado de Android? Estoy teniendo un problema con el frame tomando el enfoque de un scroll view que es su hijo.
davy.ai
Sí, es posible establecer DescendantFocusability en un Frame dentro del renderizador personalizado de Android. Puede lograr esto accediendo a la vista nativa subyacente de Android y estableciendo su descendant focusability en
beforeDescendants
. Aquí tienes un ejemplo de cómo hacerlo:En este ejemplo, creamos un renderizador personalizado para el control
Frame
y sobrescribimos el métodoOnElementChanged
. Luego accedemos a la vista nativa subyacente de Android obteniendo el primer hijo del controlFrameRenderer
(que debería ser unViewGroup
) y recorriendo sus vistas secundarias. Si encontramos una vista secundaria que es unFrameLayout
(que es el diseño utilizado para el controlFrame
), establecemos su descendant focusability enbeforeDescendants
.Al establecer el descendant focusability de esta manera, el control
Frame
ya no debería quitar el foco delScrollView
que es su hijo.