【问题标题】:Xamarin.Forms/UWP: issue with Iconize and MasterDetailPageXamarin.Forms/UWP:Iconize 和 MasterDetailPage 的问题
【发布时间】:2018-02-01 11:21:59
【问题描述】:

我在我的项目中使用了Iconize 插件,如果 IconToolbarItem 用于 IconNavigationPage(它本身用于 MasterDetailPage 的详细信息),则会出现问题。

如果我们从IconizeSample 启动 UWP 项目,IconToolbarItems 会很好地显示在 TabbedPage 中:

var tabbedPage = new IconTabbedPage { Title = "Iconize" };
foreach (var module in Plugin.Iconize.Iconize.Modules)
{
    tabbedPage.Children.Add(new Page1
    {
        BindingContext = new ModuleWrapper(module),
        Icon = module.Keys.FirstOrDefault()
    });
}
MainPage = new IconNavigationPage(tabbedPage);

如果我们将 TabbedPage 替换为 MasterDetailPage,如果 Detail 不是 IconNavigationPage,这也可以:

var mdPage = new MasterDetailPage();
mdPage.Master = new ContentPage
{
    Title = "Iconize"
};
var module = Plugin.Iconize.Iconize.Modules.First();
mdPage.Detail = new Page1
{
    BindingContext = new ModuleWrapper(module),
    Icon = module.Keys.FirstOrDefault()
};
MainPage = new IconNavigationPage(mdPage);

但是如果我们把 Detail 放在 IconNavigationPage 中,IconToolbarItem 的图标就不再可见了:

var mdPage = new MasterDetailPage();
mdPage.Master = new ContentPage
{
    Title = "Iconize"
};
var module = Plugin.Iconize.Iconize.Modules.First();
mdPage.Detail = new IconNavigationPage(new Page1
{
    BindingContext = new ModuleWrapper(module),
    Icon = module.Keys.FirstOrDefault()
});
MainPage = mdPage;

你能解释一下吗?有没有办法在等待新的软件包版本时解决这个问题?

【问题讨论】:

    标签: xamarin.forms uwp master-detail toolbaritems


    【解决方案1】:

    但是如果我们把 Detail 放在 IconNavigationPage 中,IconToolbarItem 的图标就不再可见了:

    问题是您没有将mdPage 插入IconNavigationPage。我已经修改了你的代码,它可以工作了。

    var mdPage = new MasterDetailPage();
    mdPage.Master = new ContentPage
    {
        Title = "Iconize"
    };
    var module = Plugin.Iconize.Iconize.Modules.First();
    var page = new Page1
    {
        BindingContext = new ModuleWrapper(module),
        Icon = module.Keys.FirstOrDefault()
    };
    mdPage.Detail = page;
    MainPage = new IconNavigationPage(mdPage);
    

    【讨论】:

    • 嗨@Nico Zhu。在我描述的第二种情况下,我也做了这个测试。它适用于 UWP,但不适用于 Android。但是在我想使用 Iconize 的实际项目中,这种实现是不可能的。所以我想创建一个重现“真实”上下文的测试。
    • 是的,我尝试用IconToolbarItem 替换ToolbarItem ,它工作正常,我认为这是Iconize 插件错误。我强烈建议在您的实际项目中使用ToolbarItem
    • 我正在开发一个现有的项目,ToolbarItems 已经实现,但只有标签,没有图标。在新的场景中,现在有图标:所以 Iconize 是轻松实现这一点的好选择。由于它似乎在 Android 和 iOS 上运行良好,我认为我会保持这种状态。 IconToolbarItems 在 UWP 上显示标签:仅缺少图标。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-10-28
    • 2018-07-01
    • 1970-01-01
    • 2017-07-17
    • 2014-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多