android android-fragments xamarin xamarin.android mvvmcross

android - Después de Fragment.NewInstance No se puede encontrar el constructor predeterminado en el tipo MvvmCross.Droid.Support.V4.MvxFragment



android-fragments xamarin (0)

Tengo un problema con Fragment.NewInstance. Tuve un problema con la animación de deslizar en este tema . Ahora funciona bien, pero el problema es cuando deslizo las vistas y después de deslizar, cuando cambio la orientación, por ejemplo, paisaje a retrato, tengo un error:

Xamarin causado por: android.runtime.JavaProxyThrowable: System.NotSupportedException: no se puede encontrar el constructor predeterminado en el tipo MvvmCross.Droid.Support.V4.MvxFragment. Proporcione el constructor que falta. ---> Java.Interop.JavaLocationException: Se lanzó una excepción del tipo ''Java.Interop.JavaLocationException''.

Este error solo aparece después de deslizar mi dedo con este código:

private void DoSwipe(string swipeText) { if (swipeText.Equals("LEFT")) { FragmentManager.BeginTransaction() .SetCustomAnimations(Resource.Animator.slide_from_right, Resource.Animator.slide_to_left) .Replace(Resource.Id.content_frame, ThirdFragment.NewInstance(null)) .Commit(); } if (swipeText.Equals("RIGHT")) { FragmentManager.BeginTransaction() .SetCustomAnimations(Resource.Animator.slide_from_left, Resource.Animator.slide_to_right) .Replace(Resource.Id.content_frame, FirstFragment.NewInstance(null)) .Commit(); } ViewModel.SwipeView(swipeText); }

Cuando no uso Deslizar la orientación de cambio funciona bien.

Intenté agregar este código ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation pero el problema es que no funciona ningún error, pero esta solución no llama a mi método OnCreateView donde tengo una vista específica para Landscape y Portrait: _ view = this.BindingInflate(orientation == Orientation.Landscape ? FragmentLandscapeId : FragmentId, null);

Intenté anular el método OnOrienationChange, pero intenté aquí algo como Activity.SetContentView (FragmentIdLandcape) pero la vista no se cargó bien + no contiene mis datos en esta vista.

¿Hay alguna solución para resolver el problema de error y después del cambio de orientación siempre llame a OnCreateView como ahora?

Por ejemplo, mi proyecto de prueba está aquí en github (pero allí no tengo una vista específica para el paisaje y el retrato).