Xamarin Forms Android 系統例外 "Android 一次只允許在螢幕上出現一個導航頁面"



最近我决定给Xamarin窗体一个尝试,所以我开始迁移我的Windows Phone/Android Xamarin项目,到新的"窗体"格式。

在迁移了两个简单的屏幕(视图)后,代码在我的Windows Phone上运行良好,但在Android平台上却崩溃了。我使用两个设备来测试代码,没有模拟器以避免不必要的麻烦。

android平台引发的异常为:System.Exception: Android only allows one navigation page on screen at a time

这个问题与"View"类本身无关,因为一旦我将其设置为Android的"开始屏幕",它就不会发生。

我担心这个问题与我通过Xamarin提供的"Navigation.PushAsync(…)"方法" push "两个屏幕有关。

有什么建议吗?

编辑:

代码示例

概述:"MainView.cs"只是一个内容页,顶部有一个标签,后面是两个垂直排列的按钮。

如何重现异常:单击主视图上的"获取所有用户"按钮。我修改了代码,一旦按钮被点击,就会推送相同的视图,而不是推送另一个视图(视图有一个用户列表视图,我没有包括,只是为了简单)。一旦按钮被点击,它将通过调用"Navigation.PushAsync(…)"导航到一个新的"MainView"实例。这将在加载屏幕后触发异常。

您正在嵌套导航页。这是不必要的。试试这个:

public class ViewsHandler
{
        public static Page GetMainPage()
        {
            return new MainView();
        }
        public static Page GetUsersListPage()
        {
            return new UsersListView ();
        }
}
public class MainActivity : AndroidActivity
{
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);
            // Initializing Xamarin Form
            Xamarin.Forms.Forms.Init (this, bundle);
            // create a single NavigationPage wrapping your content
            SetPage (new NavigationPage(ViewsHandler.GetMainPage()));
        }
}

最新更新