工具栏项在Xamarin Forms中未显示

15

我对Xamarin Forms还比较陌生。我试图向内容页添加工具栏项。

我使用iPad Air作为部署设备,并使用了七台iPhone / iPad模拟器。 我参考了XamarinForms-Mobile应用程序PDF文档。尽管这是一份基础文档,但我不确定为什么在设备上看不到它。请帮我找出我的错误所在。

public partial class SamplePage : ContentPage   
{
    public SamplePage()
    {
        //Toolbar items
            ToolbarItem scanItem = new ToolbarItem ();
            scanItem.Name = "Scan";
            scanItem.Order = ToolbarItemOrder.Primary;

            ToolbarItem settingsItem = new ToolbarItem ();
            settingsItem.Name = "Settings";
            settingsItem.Order = ToolbarItemOrder.Primary;

            ToolbarItems.Add (scanItem);
            ToolbarItems.Add (settingsItem);
    }
}

App.cs

public class App
    {
        public static Page GetMainPage ()
        {   
            return new SamplePage ();
        }
    }

我也尝试了使用XAML的方式,但没有结果。内容页面是空白的。

<?xml version="1.0" encoding="UTF-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="BLE_Core.BLECorePage">
    <ContentPage.Content>
    </ContentPage.Content>
    <ContentPage.ToolbarItems>
        <ToolbarItem Name = "Scan"></ToolbarItem>
        <ToolbarItem Name = "Settings"></ToolbarItem>
   </ContentPage.ToolbarItems>
</ContentPage>
2个回答

29

如果您的应用程序没有工具栏,则您的ToolbarItems将不会显示。添加工具栏的最简单方法是将您的页面包装在NavigationPage中。

public static Page GetMainPage ()
{   
  return new NavigationPage(new SamplePage ());
}

4
谢谢Jason。虽然我无法让那个确切的函数起作用,但这个方法对我来说可以让工具栏显示出来:public App() { MainPage = new NavigationPage(new MyAppName.MyPage()); } - user761574
如果我的页面有非空构造函数,该怎么办? - Bobbelinio
1
只需传入构造函数所需的参数。 - Jason
我不明白我应该把这个放在哪里。你的评论给了我明确的指示。谢谢。 - Bobbelinio

3

我想补充一个边缘案例,这让我抓狂了几个小时。我一直在 Visual Studio 之外添加图标,并试图将它们作为工具栏图标引用到我的 Xamarin Forms 应用程序中。在测试 Android 应用程序时,我引用的工具栏图标不会显示。我最终发现这些图标根本没有被打包到 APK 文件中。为什么呢?我忘记在 Visual Studio 项目中添加它们了。解决方案资源管理器 -> 单击项目 -> 单击解决方案资源管理器中标题栏的“显示所有文件”图标。然后出现图标文件,只需右键单击每个文件并选择“包含在项目中”即可。哎...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接