我是 xamarin 的新手,想在我的 xamarin.forms 项目中实现对话框

Posted

技术标签:

【中文标题】我是 xamarin 的新手,想在我的 xamarin.forms 项目中实现对话框【英文标题】:I am new to xamarin and want to implement dialogs in my xamarin.forms project 【发布时间】:2018-05-24 06:06:20 【问题描述】:

我正在尝试在我的 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);
        

这是我用于 iOS 的 Main.cs 文件:

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 文件中初始化对话框,我已经这样做了。 请检查并让我知道我的代码中缺少什么。

【问题讨论】:

【参考方案1】:

根据 Acr.UserDialogs 的 FAQ,

当您从 页面或视图模型的构造函数。视图尚未渲染 然而,因此没有什么可以渲染的。

您在页面的构造函数中调用它。

尝试在某些按钮单击时显示警报,您应该可以做到。

【讨论】:

是的,我试了一下,它工作正常,我读过同样的内容,但我不明白它是如何通过@MilanG 在 android 上工作的

以上是关于我是 xamarin 的新手,想在我的 xamarin.forms 项目中实现对话框的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin ListView itemSelected MVVM

Xamarin.Forms UWP 项目不会安装在 Windows 10 移动版上

Xamarin.GooglePlayServices.Ads。破坏了我的项目

如何选择项目 MVVM listview - Xamarin 表单

在 Xamarin Forms 中绑定之前修改数据

如何在 Xamarin (Visual Studio) 中构建 XAP 文件