【问题标题】:Xamarin Forms - How do I add extra controls to the top bar in a MasterDetailPage?Xamarin Forms - 如何在 MasterDetailPage 的顶部栏中添加额外的控件?
【发布时间】:2016-08-26 15:17:48
【问题描述】:

请看附图:

Highlighted top bar in Android add

在将 MasterDetailPage 与 Xamarin Forms 一起使用时,如何在顶部栏(靠近汉堡菜单/标题)添加图片中突出显示的项目?

更准确地说,我需要将这些类型的控件添加到第二张图像中的突出显示区域:

Highlighted Xamaring Forms top bar

【问题讨论】:

    标签: android ios xamarin.forms toolbar


    【解决方案1】:

    使用工具栏。

    在工具栏中可以添加ToolbarItem

    来自代码:

    var contentPage = new ContentPage ();
    page.ToolbarItems.Add (new ToolbarItem (....));
    

    来自 XAML:

    <ContentPage.ToolbarItems>
      <ToolbarItem .... />
    </ContentPage.ToolbarItems>
    

    你也可以看看this answer

    您应该能够将ToolBarItemOrder 设置为Secondary 以强制该选项进入Android 上的溢出菜单:

    <ContentPage.ToolbarItems>
            <ToolbarItem Text="{Binding EditButtonText, Mode=TwoWay}" Clicked="EditClicked" Order="Secondary" />
    </ContentPage.ToolbarItems>
    

    以下论坛主题应该对您有所帮助:

    1. Icon image on Toolbar item in xamarin Forms
    2. Adding toolbar items, buttons and menus

    使用属性使工具栏符合您的喜好:

    • Order - 获取或设置一个值,该值指示在主要、次要或默认工具栏表面的哪个表面上显示此 ToolbarItem 元素。
    • Priority - 获取或设置此 ToolbarItem 元素的优先级。
    • Icon - 获取或设置一个字符串,用于标识在此 ToolbarItem 元素上显示的图像。

    【讨论】:

    • @Rohit- 我创建了带有购物车图标的 ToolBarItem。现在我想在购物车图标上显示徽章(产品计数)。我尝试了很多,但未能修改其图标,甚至无法在工具栏项中添加任何内容。如果可以,请在这件事上提供帮助。
    • 请针对您尝试过的问题提出一个新问题。会调查的。
    【解决方案2】:

    正如@Rohit 所说,您可以这样做:

    private void ShowToolbarItems()
    {
    ToolbarItem toolbarItem;
    if (Device.OS == TargetPlatform.iOS)
    {
        // move layout under the status bar
        this.Padding = new Thickness(0, 20, 0, 0);
    
        toolbarItem = new ToolbarItem("Sync", "sync_icon.png", () =>
        {
            SyncService();
        }, 0, 0);
        ToolbarItems.Add(toolbarItem);
    }
    
    if (Device.OS == TargetPlatform.Android)
    {
    
        toolbarItem = new ToolbarItem("Sync", "sync_icon.png", () =>
        {
            SyncService();
        }, 0, 0);
        ToolbarItems.Add(toolbarItem);
    
    }
    

    其中“sync_icon.png”是您的 iOS/Android/WP 项目的资源。希望这会有所帮助。

    这里还有一篇很棒的关于 Android 材料设计的博文:

    https://blog.xamarin.com/android-tips-hello-toolbar-goodbye-action-bar/

    【讨论】:

    • 只有 this.Padding = new Thickness(0, 20, 0, 0); 是特定于平台的,你可以把它的其余部分放在 if 之外
    • 感谢你们(Mario Galvan)和 Rohit,非常感谢!
    猜你喜欢
    • 2018-08-20
    • 2019-11-07
    • 2018-12-10
    • 2017-03-29
    • 2021-12-09
    • 1970-01-01
    • 2011-03-02
    • 2017-05-07
    • 1970-01-01
    相关资源
    最近更新 更多