2013-08-07 1 views
0

Можно ли добавить макет к MvxSplashScreenActivity? Я overiden в OnViewModelSet как и во всех других видах деятельности и поместил следующий код:добавить макет к splashscreen

protected override void OnViewModelSet() 
    { 
     base.OnViewModelSet(); 
     SetContentView (Resource.Layout.SplashScreen); 
    } 

Компоновка Я пытаюсь загрузить это:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:minWidth="25px" 
android:minHeight="25px"> 
<ImageView 
    android:src="@drawable/applogo" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView1" 
    android:layout_centerInParent="true" /></RelativeLayout> 

и я получаю следующее исключение:

Cirrious.CrossCore.Exceptions.MvxException: Не удалось разрешить тип Cirrious.MvvmCross.Binding.BindingContext.IMvxBindingContextStack`1 [[Cirrious.MvvmCross.Binding.Droid.BindingContext.IM vxAndroidBindingContext, Cirrious.MvvmCross.Binding.Droid, Version = 1.0.0.0, культура = нейтральной, PublicKeyToken = NULL]]

Я не могу показаться, чтобы найти что-нибудь в Интернете относительно экрана mvvmcross выплеска ..

Ахи Идеи?

ответ

1

Вы не можете использовать компоновку привязки данных в заставке - всплывающее окно отображается до того, как mvvmcross будет полностью запущен.

Однако для простого макета, вы передать идентификатор ресурса вниз к конструктору базового класса:

public class SplashScreen : MvxSplashScreenActivity 
{ 
    public SplashScreen() 
     : base(Resource.Layout.SplashScreen) 
    { 
    } 
} 

Далее - чтобы избежать черных экранов начала - большинство людей используют тему, чтобы указать весь экран изображение с в их заставке - см. «стандартный» брызговик, поставляемый nuget - https://github.com/slodge/MvvmCross/blob/v3/nuspec/DroidContent/SplashScreen.cs.pp

0

Обеспечьте инициализацию установки перед вызовом OnCreate.

protected override void OnCreate(Bundle bundle) 
     { 
      var setupSingleton = MvxAndroidSetupSingleton.EnsureSingletonAvailable(this); 
      setupSingleton.EnsureInitialized(); 

      base.OnCreate(bundle); 
     }