Xamarin.Forms swipe gesture recognizer
Xamarin.Forms es muy nuevo y muy emocionante, pero por ahora veo que tiene documentación limitada y algunas muestras. Estoy tratando de hacer una aplicación con una interfaz similar a la "MasterDetailPage" uno, pero también tener una vista derecha Flyout, no sólo la izquierda.
He visto que esto no es posible utilizando la API actual, y por lo que mi enfoque fue el siguiente:
- ¿Dónde está la clave de firma de Android en el disco que crea Xamarin Studio?
- Instale el paquete: 'Android Support Library'
- Combine Xamarin y React Native en una aplicación
- Android 5.0 hace que las casillas de verificación no seleccionadas sean invisibles cuando el fondo es blanco
- Biblioteca de vinculación de datos de Android en Xamarin.Android
- Cree una interfaz compartida de GestureRecognizer.
- En la aplicación de Android y iOS en vincular esta interfaz a la UIGestureRecognizer en iOS o el método OnTouch en el androide.
Para iOS esto está funcionando, pero para Android el oyente táctil sobre la actividad no parece funcionar.
¿Mi enfoque es bueno? Tal vez hay otro buen método para capturar eventos táctiles directamente desde el código compartido? ¿O tiene alguna idea de por qué el override público bool OnTouchEvent no funciona en AndroidActivity?
- Cómo arreglar los errores de compilación de Xamarin.Android con proguard habilitado?
- Android.Views.InflateException: Línea de archivo XML binario # 17: Error al inflar la clase android.support.design.internal.NavigationMenuItemView
- Error incluso si la aplicación parece no estar instalada
- No se puede encontrar puntos seq para el método '(wrapper administrado a nativo) System.Diagnostics.Debugger: Mono_UnhandledException_internal (System.Exception)'
- Manera correcta de almacenar la clave de cifrado para la base de datos SqlCipher
- Multipeer Conectividad: iOS y Android
- JsonSerializationException 'No se puede encontrar un constructor' en Xamarin.Android
- InstantiationException: No se puede instanciar fragmento Asegúrese de que el nombre de clase existe, es público y tiene un constructor vacío que es público
El MasterDetailPage, y otros elementos compartidos, son sólo contenedores para que los procesadores de vistas puedan recoger. La mejor opción sería crear una LRMasterDetailPage personalizada (izquierda-derecha ..) y darle propiedades tanto para el DetailLeft como para el DetailRight. A continuación, implementa un ViewRenderer personalizado por plataforma para este elemento personalizado.
El elemento:
public class LRMasterDetailPage { public View LeftDetail; public View RightDetail; public View Master; }
El renderizador:
[assembly:ExportRenderer (typeof(LRMasterDetailPage), typeof(LRMDPRenderer))] namespace App.iOS.Renderers { public class LRMDPRenderer : ViewRenderer<LRMasterDetailPage,UIView> { LRMasterDetailPage element; protected override void OnElementChanged (ElementChangedEventArgs<LRMasterDetailPage> e) { base.OnElementChanged (e); element = e.NewElement; // Do someting else, init for example } protected override void OnElementPropertyChanged (object sender, System.ComponentModel.PropertyChangedEventArgs e) { if (e.PropertyName == "Renderer") return; base.OnElementPropertyChanged (sender, e); if (e.PropertyName == "LeftDetail") updateLeft(); if (e.PropertyName == "RightDetail") updateRight(); } private void updateLeft(){ // Insert view of DetailLeft element into subview // Add button to open Detail to parent navbar, if not yet there // Add gesture recognizer for left swipe } private void updateRight(){ // same as for left, but flipped } } }
Le aconsejo que utilice el enfoque de CarouselView, ya que puede utilizar soluciones ya existentes con vista de carrusel que son soporta gestos de deslizamiento. Tan en resultado su visión será envuelta en este control de la visión del carrusel
- Método de actividad de llamada desde dentro de un fragmento
- Cómo centrar la imagen verticalmente en este RelativeLayout