微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Xamarin.Forms Shell 中使用 ShellSection 时,为什么分隔符不显示在浮出控件中?

如何解决在 Xamarin.Forms Shell 中使用 ShellSection 时,为什么分隔符不显示在浮出控件中?

在我的 Xamarin.Forms Shell 应用程序中,我在 AppShell.xaml.cs 文件而不是 AppShell.xaml 文件中定义弹出项目,因为我需要以编程方式定义它们。 Here,我读到我可以使用 FlyoutdisplayOptions.AsMultipleItems 值来获取分隔符。因此,我不明白为什么在我使用 ShellSection 元素并将其 FlyoutdisplayOptions 设置为 FlyoutdisplayOptions.AsMultipleItems 时 Xamarin 不显示分隔符。我用来定义弹出项目的代码如下:

var nli = new FlyoutItem   { FlyoutdisplayOptions = FlyoutdisplayOptions.AsMultipleItems };
var nc  = new ShellSection { FlyoutdisplayOptions = FlyoutdisplayOptions.AsMultipleItems };

foreach (var kind in kinds) { // "kinds" is retrieved from a service
   var csc = new ShellContent { /* ... */ };
   nc.Items.Add(csc);
}

nli.Items.Add(nc);
ShellItems.Items.Add(nli);

enter image description here

红色区域是由 foreach 语句填充的区域。 FlyoutItemShellSection 父项的 FlyoutdisplayOptions 设置正确,但分隔符未显示ShellContent 元素之间。为什么?

解决方法

要在 FlyoutItems 或 MenuItems 之间添加分隔符,您可以添加带有 DataTemplate 的 MenuItem,如下所示:

<MenuItem>
    <Shell.MenuItemTemplate>
        <DataTemplate>
            <Label HeightRequest="1" BackgroundColor="LightGray"></Label>
        </DataTemplate>
    </Shell.MenuItemTemplate>
</MenuItem>

您或许可以将其转换为代码隐藏。 这是它的外观:

FlyoutMenu with Separators

,

应该是shell中的默认现象,FlyoutItem中的项之间没有分隔符。

你可以看看official document

enter image description here

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?