0

是否可以向 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,版本 = 1.0.0.0 , Culture=neutral, PublicKeyToken=null]]

我似乎无法在网上找到任何关于 mvvmcross 启动画面的信息。

啊想法?

4

2 回答 2

2

您不能在启动画面中使用数据绑定布局 - 在完全启动 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

于 2013-08-07T18:07:18.387 回答
1

确保在调用 OnCreate 之前初始化设置。

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

            base.OnCreate(bundle);
        }
于 2016-02-01T01:53:27.647 回答