android - 我是 xamarin 的新手,想在我的 xamarin.forms 项目中实现对话框
问题描述
我正在尝试在我的 xamain.forms 项目中实现 acr.userDialogs,它在 android 中得到了完美的实现,但是当我尝试在 iOS 设备中运行它时,我得到了空对象引用。
这是我正在使用的对话框的库参考:
https://github.com/aritchie/userdialogs
这是我的page.xaml.cs
文件:
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Page1 : ContentPage
{
public Page1 ()
{
InitializeComponent ();
UserDialogs.Instance.Alert("Demo Dialog", "Dialog", "ok");
}
}
这是安卓ManinActivity.cs
文件:
[Activity(Label = "App3", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.Tabbar;
ToolbarResource = Resource.Layout.Toolbar;
UserDialogs.Init(() => (Activity)Forms.Context);
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App());
}
}
这是我appDelegate.cs
的 iOS 文件:
public override bool FinishedLaunching(UIApplication app, NSDictionary options)
{
global::Xamarin.Forms.Forms.Init();
LoadApplication(new App());
return base.FinishedLaunching(app, options);
}
这是我Main.cs
的 iOS 文件:
public class Application
{
// This is the main entry point of the application.
static void Main(string[] args)
{
// if you want to use a different Application Delegate class from "AppDelegate"
// you can specify it here.
UIApplication.Main(args, null, "AppDelegate");
}
}
我还看到了库文档,发现您不需要像在 iOS 中那样自动初始化 userDialogs,但是在 android 中,必须在 MainActivity.cs 文件中初始化对话框,我已经这样做了。请检查并让我知道我的代码中缺少什么。
解决方案
根据Acr.UserDialogs的常见问题解答,
当您从页面或视图模型的构造函数运行加载(或几乎任何对话框)时,就会发生这种情况。该视图尚未渲染,因此没有可渲染的内容。
您在 Page 的构造函数中调用它。
尝试在单击某些按钮时显示警报,您应该可以做到。
推荐阅读
- neo4j - 如何在嵌入式 neo4j 中使用“apoc.util.md5”
- javascript - 将 google doc 转换为 pdf 会导致空白 pdf、google 脚本
- azure-devops - 当我尝试通过 VS2017 打开 VSTS 任务时,日期可见但时间不可见
- sql-server - 动态 SQL 查询以查找表的所有列的缺失值计数
- android - RecyclerView 中的并发修改
- c# - Resharper 是否为 C# 类/方法/属性的 Visual Studio 提供了额外的 XML Doc 功能?
- android - 拥有多个 Launcher Activity
- django - 删除旧迁移中使用的过时函数
- node.js - 如何使 Google App Service 公开可见
- python - 将浮点数列表转换为熊猫中的多列浮点数