Я новичок в xamarin и хочу реализовать диалоги в моем проекте xamarin.forms - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь реализовать acr.userDialogs в моем проекте xamain.forms, он отлично реализован в 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");
        }
    }

Вот файл Android 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");
        }
    }

Я также видел документацию библиотекии обнаружили, что вам не нужно инициализировать userDialogs в iOS, как это происходит автоматически, однако в Android необходимо обязательно инициализировать диалог в файле MainActivity.cs, который я уже сделал.Пожалуйста, проверьте и дайте мне знать, что мне не хватает в моем коде.

1 Ответ

0 голосов
/ 24 мая 2018

Согласно FAQ для Acr.UserDialogs,

Это происходит, когда вы запускаете загрузку (или почти любой диалог) из конструктора вашей страницы или модели представления.Представление еще не было обработано, поэтому отображать нечего.

Вы вызываете его в конструкторе страницы.

Попробуйте показать предупреждение при нажатии какой-либо кнопки иВы должны быть в состоянии сделать это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...