Xamarin.Forms - Android 全球不支持 PushAsync,请使用 NavigationPage
Posted
技术标签:
【中文标题】Xamarin.Forms - Android 全球不支持 PushAsync,请使用 NavigationPage【英文标题】:Xamarin.Forms - PushAsync is not supported globally on Android, please use a NavigationPage 【发布时间】:2020-05-21 13:54:21 【问题描述】:我正在尝试做的是在用户注册并单击“是”后,它将转到登录页面。否则用户单击“取消”它将进行注册,请帮帮我..我是 xamarin 的新手
void Handle_Clicked(object sender, System.EventArgs e)
string ConnectionString = "Server=10.0.2.2; Port=5432;User Id=postgres; Password=ncf123; Database=Accounting";
try
NpgsqlConnection connection = new NpgsqlConnection(ConnectionString);
connection.Open();
catch (Exception)
Console.WriteLine("adi na");
NpgsqlConnection connections = new NpgsqlConnection(ConnectionString);
connections.Open();
NpgsqlCommand command = connections.CreateCommand();
command.CommandText = "INSERT INTO account(username, password, email, phonenumber) VALUES ( '" + EntryUsername.Text + "', '" + EntryPassword.Text + "','" + EntrEmail.Text + "','" + EntryPhoneNumber.Text + "')";
try
NpgsqlDataReader reader = command.ExecuteReader();
while (reader.Read())
EntryUsername.Text = reader[0].ToString();
EntryPassword.Text = reader[1].ToString();
EntrEmail.Text = reader[2].ToString();
EntryPhoneNumber.Text = reader[3].ToString();
connections.Close();
Device.BeginInvokeOnMainThread(async () =>
var result = await DisplayAlert("Congratulations", "User Registration Successfull", "Yes", "Cancel");
if (result)
await Navigation.PushAsync(new LoginPage());
else
await Navigation.PushAsync(new registration());
);
catch (Exception ex)
Console.WriteLine(ex.ToString());
更新 这是我的 App.xaml.cs
public partial class App : Application
public App()
InitializeComponent();
MainPage = new registration();
protected override void OnStart()
protected override void OnSleep()
protected override void OnResume()
请帮帮我,我是 xamarin 和 postgresql 的新手
【问题讨论】:
正如错误所说,您需要使用 NavigationPage。您需要将当前页面包装在 NavigationPage 中,很可能是在 App.xaml.cs 中分配 MainPage 时 @Jason 先生怎么样?MainPage = new NavigationPage(new WhateverMyMainPageIsCalled());
为什么是主页?我可以用 LoginPage 替换它吗?但我已经试过了,但它不起作用
docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/…
【参考方案1】:
在您的 app.cs 中更改 MainPage = new MainPage();到 MainPage = new NavigationPage(new MainPage()); 其中 MainPage() 是启动应用时要打开的页面的名称
【讨论】:
var result = await DisplayAlert("恭喜", "用户注册成功", "是", "取消"); if (result) MainPage = new NavigationPage(new MainPage()); """错误 MainPage 是类型,但像变量一样使用 我更改了我的 app.xaml 查看您的 app.xaml.cs 您希望它说 MainPage = new NavigationPage(new registration());其他一切看起来都很好 是的,注册后用户会选择是否登录,如果该人点击,那么他将链接到登录页面 现在可以用了吗?将该更改添加到您的 app.xaml.cs 应该可以解决问题以上是关于Xamarin.Forms - Android 全球不支持 PushAsync,请使用 NavigationPage的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.Forms 是 Xamarin.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?
在 Xamarin.Forms 中使用 Android 绑定
Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏
Xamarin.Forms 3.1.0+版本 Android 原生支持底部导航栏啦
Xamarin.Forms:Android 项目构建错误 - AppData\Local\Xamarin 文件夹中缺少文件