添加布局到splashscreen

时间:2013-08-07 17:20:38

标签: xamarin.android splash-screen mvvmcross

是否可以向MvxSplashScreenActivity添加布局?我像所有其他活动一样覆盖了OnViewModelSet,并放置了以下代码:

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.IMvxAndroidBindingContext,   Cirrious.MvvmCross.Binding.Droid,Version = 1.0.0.0,Culture = neutral,   公钥=空]]

我似乎无法在网上找到有关mvvmcross启动画面的任何内容..

Ahy Ideas?

2 个答案:

答案 0 :(得分:1)

您不能在启动画面中使用数据绑定布局 - 在mvvmcross完全启动之前会显示启动画面。

但是,对于简单的布局,您确实将资源Id传递给基类构造函数:

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

此外 - 为避免黑屏开始屏幕 - 大多数人使用主题在其闪屏中指定整个屏幕图像 - 请参阅由nuget提供的“标准”启动画面 - https://github.com/slodge/MvvmCross/blob/v3/nuspec/DroidContent/SplashScreen.cs.pp

答案 1 :(得分:0)

确保在调用OnCreate之前初始化安装程序。

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

            base.OnCreate(bundle);
        }