【问题标题】:Cannot add Flyout Footer in Xamarin forms app无法在 Xamarin 表单应用程序中添加 Flyout 页脚
【发布时间】:2021-07-05 12:59:28
【问题描述】:

我有一个 xamarin 表单应用程序,我想在弹出菜单中添加页脚。阅读官方文档后应该很简单,只需在 AppShell.xaml 中添加几行,如下所示:

<Shell.FlyoutFooterTemplate>
    <DataTemplate>
        <Label HeightRequest="300" BackgroundColor="Red"/>
    </DataTemplate>
</Shell.FlyoutFooterTemplate>

当我在一个新项目中尝试它时,它工作得非常好,但由于某种原因,它在我当前的应用程序中不起作用,给出了这个错误: 错误 XLS0415 在“Shell”类型中找不到可附加属性“FlyoutFooterTemplate”。

我试图找到 FlyoutHeaderTemplate 的定义,我在 Shell [来自元数据] 文件中找到了这个: [1]:https://i.stack.imgur.com/xqZub.png

public Shell();
...
public DataTemplate FlyoutHeaderTemplate { get; set; }
public FlyoutHeaderBehavior FlyoutHeaderBehavior { get; set; }
public object FlyoutHeader { get; set; }

Header 和 Footer 应该有类似的定义,但 Header 只有一个。该文件无法编辑,我也无法找到它。任何想法为什么缺少页脚的定义,如何添加它或解决方法?

PS:从 C# 代码添加页脚也不起作用,我尝试清理/重建和重置 PC 和 VS。

【问题讨论】:

    标签: visual-studio xamarin xamarin.forms mobile-application app-shell


    【解决方案1】:

    首先,确认可以添加一个简单的Header:

    <Shell.FlyoutHeader>
        <Label Text="This is the header." />
    </Shell.FlyoutFooter>
    

    如果这不起作用,那么您在做一些根本错误的事情 - 发布 &lt;Shell&gt; XAML 的代码,您在其中添加了这些行。确保包含这些行,以显示它们在 XAML 中的位置。确保它们在&lt;Shell&gt;&lt;/Shell&gt; 之间,但没有嵌套在更深的节点内。例如,它们不得位于 &lt;StackLayout&gt;&lt;ContentView&gt; 或其他容器中 - 它们必须是 &lt;Shell&gt; 的直接子级。


    除非你做一些花哨的事情,否则你不需要Template

    简单尝试:

    <Shell.FlyoutFooter>
        <Label HeightRequest="300" BackgroundColor="Red"/>
    </Shell.FlyoutFooter>
    

    如果上述 1) 有效,但 2) 无效,则您的项目引用了一个过时版本的 Shell。修复:

    A.检查项目的Xamarin.Forms nuget 不需要更新。 (解决方案/管理 Nugets。)
    B. 或删除 binobj 文件夹。然后重建解决方案。
    C. 最坏的情况,从一个新项目开始,您可以在其中使用该功能,然后重新添加到您的所有文件中。

    【讨论】:

    猜你喜欢
    • 2019-12-14
    • 1970-01-01
    • 2020-03-21
    • 2019-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-17
    相关资源
    最近更新 更多