【问题标题】:Xamarin Forms ToolbarItems shown on the wrong pageXamarin Forms ToolbarItems 显示在错误的页面上
【发布时间】:2018-06-01 19:47:47
【问题描述】:

我对 ToolbarItems 有疑问。 所以我启动我的应用程序并在构造函数中检查是否有人从我的主页上的列表视图中单击了一个元素。如果发生这种情况,我将开始一个新的页面。我遇到的错误是主页中的工具栏项现在仍然显示。

【问题讨论】:

  • 能否提供一些演示代码。请?您是否使用Navigation.PushAsync() 显示新页面?你的ToolbarItems 是如何定义的?
  • 您好,我添加了打开页面的代码
  • 起初我在 XAML 中定义了 ToolbarItems,但后来我在主页的 c# 代码中定义了它们,我认为这可能会解决它,但不是 :)
  • 所以ToolbarItems 仅在MainPage 上定义。你什么时候在构造函数中创建它们?导航到LoginPage 之后ToolbarItems 还在吗?
  • 是的,这就是为什么我认为这可能是一个 xamarin 错误

标签: xamarin xamarin.forms


【解决方案1】:

这是我在构造函数中使用的方法:)

public void LoadLastPortal() {

        if (App.Current.Properties.ContainsKey("LastPortal"))
        {

            String LastPortal = App.Current.Properties["LastPortal"].ToString();
            if (!string.IsNullOrEmpty(LastPortal))
            {
                Navigation.PushAsync(new LoginPage(App.Current.Properties["LastPortal"].ToString()));

            }
        }

【讨论】:

    【解决方案2】:

    我已尝试重现您的问题,但在我的示例应用程序中它可以正常工作。在此处查看MainPage 的代码:

        public MainPage()
        {
            InitializeComponent();
    
            this.ToolbarItems.Add(new ToolbarItem { Text = "test1" });
            this.ToolbarItems.Add(new ToolbarItem { Text = "test2" });
            this.ToolbarItems.Add(new ToolbarItem { Text = "test3" });
        }
    
        private void NavigateButtonOnClicked(object sender, EventArgs e)
        {
            Navigation.PushAsync(new SecondPage());
        }
    

    按下MainPage 上的按钮后,我将导航到SecondPage,三个ToolbarItems 没有显示。请提供更多信息,以便我能够为您提供帮助。

    【讨论】:

    • 是的,如果我单击一个打开新页面的按钮,它可以正常工作,但尝试从构造函数打开一个页面,就像用户只是保存他的设置并且您再次打开应用程序时方法知道并且只是跳过登录并自动打开新页面而不是发生此错误
    • 我也试过用这个:ToolbarItems.Clear();在出现第二页但它什么也不做
    • 在这种情况下,您应该首先检查用户是否需要导航到另一个页面。如果不是这种情况,您将添加 ToolbarItems。我认为这是某种竞争条件。他尝试添加 ToolbarItems,然后导航,然后出现某种问题。你可以试试这个吗?
    • 好吧,上周我刚刚测试了一个测试用例,但现在我发现还有另一个问题,因为如果我现在点击“导航返回按钮”,按钮将不会显示。
    猜你喜欢
    • 2017-12-25
    • 2014-09-13
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多