You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无需自定义渲染器实现多页面独立ToolbarItem及二级页显示问题解决

解决二级页面ToolbarItems不显示的问题

以下是无需自定义渲染器的解决方案,针对导航后二级页面ToolbarItems不显示的问题:

1. 确保二级页面启用导航栏

默认情况下,导航页面的导航栏状态可能继承自主页,需显式开启二级页面的导航栏:

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="YourApp.SecondaryPage"
             NavigationPage.HasNavigationBar="True">
    <ContentPage.ToolbarItems>
        <ToolbarItem Text="Item 1" Priority="0" Order="Primary" />
        <ToolbarItem Text="Item 2" Priority="1" Order="Secondary" />
    </ContentPage.ToolbarItems>
    <!-- 页面其他内容 -->
</ContentPage>

2. 使用正确的导航方式

必须使用PushAsync进行导航,模态导航(PushModalAsync)默认不会显示导航栏,自然无法展示ToolbarItems:

// 主页中触发导航的代码
private async void GoToSecondaryPage(object sender, EventArgs e)
{
    await Navigation.PushAsync(new SecondaryPage());
}

3. 动态替换ToolbarItems(可选)

如果需要完全替换导航栏内容,避免继承主页的Toolbar项,可以在二级页面的OnAppearing方法中手动设置:

protected override void OnAppearing()
{
    base.OnAppearing();
    NavigationPage.SetToolbarItems(this, new ToolbarItemCollection
    {
        new ToolbarItem { Text = "Item 1", Priority = 0, Order = ToolbarItemOrder.Primary },
        new ToolbarItem { Text = "Item 2", Priority = 1, Order = ToolbarItemOrder.Secondary }
    });
}

4. 验证ToolbarItem属性配置

  • Order="Primary"的项会直接显示在导航栏(空间允许时),Order="Secondary"的项会进入溢出菜单(如Android的三点菜单)
  • Priority数值越小,优先级越高,会优先占据导航栏显示位置

内容的提问来源于stack exchange,提问作者Atharva Biwalkar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 05:15:32