首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ToolBarItems导航规则

ToolBarItems导航规则
EN

Stack Overflow用户
提问于 2018-01-11 14:18:36
回答 1查看 597关注 0票数 0

我试图将这些工具栏添加到我的内容页中,如果它是导航堆栈的第一页,它就能工作。但是如果我用它作为第二个,我就不能得到任何菜单。如何使工具条项出现在IssuePage上而不让它成为我的起始页面?

代码语言:javascript
复制
       public partial class IssuesPage : ContentPage
       {     
                var home = new ToolbarItem
                {
                    Text = "Add New",
                    Icon = "Add.png",
                    Order = ToolbarItemOrder.Primary,
                    Priority = 0,
                };
                home.Clicked += this.OnClickNewIssue;
                this.ToolbarItems.Add(home);

                var map = new ToolbarItem
                {
                    Text = "Map",
                    Icon = "map.png",
                    Order = ToolbarItemOrder.Primary,
                    Priority = 0,
                };
                map.Clicked += this.OnClickShowMap;
                this.ToolbarItems.Add(map);


                var loginLocation = new ToolbarItem
                {
                    Text = "Login and Location",
                    Icon = "menu.png",
                    Order = ToolbarItemOrder.Secondary,
                    Priority = 0,
                };
                loginLocation.Clicked += this.OnClickLoginLocation;
                this.ToolbarItems.Add(loginLocation);

                var filter = new ToolbarItem
                {
                    Text = "Filter and Sorting",
                    Icon = "filter.png",
                    Order = ToolbarItemOrder.Secondary,
                    Priority = 1,
                };
                filter.Clicked += this.OnClickSetFilter;
                this.ToolbarItems.Add(filter);
            }

下面是稍后的页面顺序。

代码语言:javascript
复制
   public App()
   {
       Client = new AppIssueClient();
       // The root page of your application
       MainPage = GetMainPage();

   }
  public static Page GetMainPage()
  {
       return new NavigationPage(new IssueCarouselPage(new UIIssueVM(true)));
  }

这就是我如何从IssuePage IssueCarosuelPage

代码语言:javascript
复制
void OnGoToEventList(object sender, EventArgs args)
{
    Navigation.PushModalAsync(new IssuesPage(-1));
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-01-11 15:25:23

原因是使用PushModalAsync,您将在堆栈上推送一个全新的页面,这不仅取代了IssueCarouselPage,甚至取代了包装它的NavigationPage。正因为如此,您将失去工具栏功能。若要解决此问题,请执行以下操作:

代码语言:javascript
复制
void OnGoToEventList(object sender, EventArgs args)
{
    Navigation.PushModalAsync(new NavigationPage(new IssuesPage(-1)));
}

现在,您将在堆栈上推送一个新的导航页,其中包含新的IssuesPage,导航页将提供工具栏。或者,您可以只使用PushAsync进行分层导航:

代码语言:javascript
复制
void OnGoToEventList(object sender, EventArgs args)
{
    Navigation.PushAsync(new IssuesPage(-1));
}

您应该使用哪一个取决于您的特定用例。在这篇博客文章中,这两种导航形式都有很好的比较。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48209186

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档