我有两个类MainPage.xaml和Home.xaml。我用Xamarin编写了Home.xaml。Essentials抖动检测代码,并希望从主页移动到MainPage.xaml,但它不起作用。
主页.xaml.cs
namespace StarRatingApp
{
[XamlCompilation(XamlCompilationOptions.Compile)]
public partial class Home : ContentPage
{
public Home()
{
InitializeComponent();
}
protected override void OnAppearing()
{
base.OnAppearing();
Accelerometer.ShakeDetected += Accelerometer_ShakeDetected;
Accelerometer.Start(SensorSpeed.Game);
}
private void Accelerometer_ShakeDetected(object sender, EventArgs e)
{
MainThread.BeginInvokeOnMainThread(() =>
{
new NavigationPage(new MainPage());
});
}
}
我在Acceleratometer_ShakeDetected方法中做错了什么??
您没有在方法中导航。您只需创建一个新的NavigationPage。这不会有任何作用。你必须告诉系统,你想在哪里导航以及如何导航。
你有两个选择:
1( 导航到您的页面(这会将页面添加到导航堆栈(
await Navigation.PushAsync(new MainPage());
或者2(用新的NavigationPage覆盖您的主页(这将删除整个NavigationStack并启动"新"导航(
Application.Current.MainPage = new NavigationPage(new MainPage());
您可以在文档中找到有关导航的更多信息>>https://learn.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/hierarchical