MvvmCross - 卡在启动画面
MvvmCross - Stuck in splash screen
我正在使用 MvvmCross 和 Xamarin.Forms 开发一个小型应用程序。
我按照 MvvmCross 网站上的教程构建了项目;问题是,当我尝试添加启动画面(在 android 项目上)以在主视图模型加载时出现时,它会卡在上面...
我附上我的 Start.cs(相当于 MainActivity 文件)设置和 SplashScreen 配置:
[Activity(
Label = "@string/app_name",
Theme = "@style/AppTheme",
MainLauncher = false,
LaunchMode = LaunchMode.SingleTask,
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class Start : MvxFormsAppCompatActivity<Setup, App, FormsApp>
{
//LaunchMode = LaunchMode.SingleTask
//MvxFormsAppCompatActivity<MvxFormsAndroidSetup<App, FormsApp>, App, FormsApp>
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
}
}
设置:
public class Setup : MvxFormsAndroidSetup<App, FormsApp>
{
}
启动画面:
[Activity(
Label = "Template",
MainLauncher = true,
NoHistory = true,
Theme = "@style/AppTheme",
Icon = "@drawable/icon")]
public class SplashScreen : MvxSplashScreenActivity
{
public SplashScreen()
:base(Resource.Layout.SplashScreen)
{
}
protected override void RunAppStart(Bundle bundle)
{
StartActivity(typeof(Start));
base.RunAppStart(bundle);
}
}
有人知道我做错了什么吗?
您使用的是哪个版本的 MvvmCross?
一般来说,请尝试遵循 Playground 示例中的内容。对于 Xamarin.Forms Droid,你应该看看 Playground.Forms.Droid - 我建议在你的机器上下载 MvvmCross 源代码(使用开发分支)并尝试 运行 这个示例。
我怀疑问题出在您从 MvxSplashScreenActivity
继承的部分。尝试继承 class 的通用版本,例如MvxFormsSplashScreenActivity<Setup, Core.App, FormsApp>
。看看 splash screen class 在 Playground 示例中的样子
如果这没有帮助,请逐字检查您的应用与 Playground 示例应用有何不同,并填写缺失的部分
我正在使用 MvvmCross 和 Xamarin.Forms 开发一个小型应用程序。 我按照 MvvmCross 网站上的教程构建了项目;问题是,当我尝试添加启动画面(在 android 项目上)以在主视图模型加载时出现时,它会卡在上面... 我附上我的 Start.cs(相当于 MainActivity 文件)设置和 SplashScreen 配置:
[Activity(
Label = "@string/app_name",
Theme = "@style/AppTheme",
MainLauncher = false,
LaunchMode = LaunchMode.SingleTask,
ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class Start : MvxFormsAppCompatActivity<Setup, App, FormsApp>
{
//LaunchMode = LaunchMode.SingleTask
//MvxFormsAppCompatActivity<MvxFormsAndroidSetup<App, FormsApp>, App, FormsApp>
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
base.OnCreate(bundle);
}
}
设置:
public class Setup : MvxFormsAndroidSetup<App, FormsApp>
{
}
启动画面:
[Activity(
Label = "Template",
MainLauncher = true,
NoHistory = true,
Theme = "@style/AppTheme",
Icon = "@drawable/icon")]
public class SplashScreen : MvxSplashScreenActivity
{
public SplashScreen()
:base(Resource.Layout.SplashScreen)
{
}
protected override void RunAppStart(Bundle bundle)
{
StartActivity(typeof(Start));
base.RunAppStart(bundle);
}
}
有人知道我做错了什么吗?
您使用的是哪个版本的 MvvmCross?
一般来说,请尝试遵循 Playground 示例中的内容。对于 Xamarin.Forms Droid,你应该看看 Playground.Forms.Droid - 我建议在你的机器上下载 MvvmCross 源代码(使用开发分支)并尝试 运行 这个示例。
我怀疑问题出在您从 MvxSplashScreenActivity
继承的部分。尝试继承 class 的通用版本,例如MvxFormsSplashScreenActivity<Setup, Core.App, FormsApp>
。看看 splash screen class 在 Playground 示例中的样子
如果这没有帮助,请逐字检查您的应用与 Playground 示例应用有何不同,并填写缺失的部分