繁体   English   中英

Xamarin Forms Android系统异常“ Android一次只允许在屏幕上显示一个导航页面”

[英]Xamarin Forms Android System Exception “Android only allows one navigation page on screen at a time”

最近,我决定尝试一下Xamarin Forms ,因此我开始将Windows Phone / Android Xamarin项目迁移到新的“ Forms”格式。

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

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

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

恐怕问题与我通过Xamarin提供的“ Navigation.PushAsync(...)”方法“推送”两个屏幕有关。

关于如何真正解决它的任何想法?

编辑:

代码样例

概述: “ 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()));
        }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM