Fra*_*rpa 2 xamarin.ios flyout xamarin.android xamarin xamarin.forms
在我的 Xamarin.Forms Shell 应用程序中,我在文件中定义弹出项目AppShell.xaml.cs,而不是在AppShell.xaml文件中定义,因为我需要以编程方式定义它们。在这里,我读到我可以使用该FlyoutDisplayOptions.AsMultipleItems值来获取分隔符。所以,我不明白为什么 Xamarin 在使用元素ShellSection并将其设置FlyoutDisplayOptions为时不显示分隔符FlyoutDisplayOptions.AsMultipleItems。我定义弹出项目的代码如下:
var nli = new FlyoutItem { FlyoutDisplayOptions = FlyoutDisplayOptions.AsMultipleItems };\nvar nc = new ShellSection { FlyoutDisplayOptions = FlyoutDisplayOptions.AsMultipleItems };\n\nforeach (var kind in kinds) { // "kinds" is retrieved from a service\n var csc = new ShellContent { /* ... */ };\n nc.Items.Add(csc);\n}\n\nnli.Items.Add(nc);\nShellItems.Items.Add(nli);\nRun Code Online (Sandbox Code Playgroud)\n\n红色区域是该foreach语句所填充的区域。和FlyoutItem父ShellSection级已FlyoutDisplayOptions正确设置,但元素之间未显示分隔符ShellContent。为什么?
要在 FlyoutItems 或 MenuItems 之间添加分隔符,您可以添加带有 DataTemplate 的 MenuItem,如下所示:
<MenuItem>
<Shell.MenuItemTemplate>
<DataTemplate>
<Label HeightRequest="1" BackgroundColor="LightGray"></Label>
</DataTemplate>
</Shell.MenuItemTemplate>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
您也许可以将其转换为代码隐藏。它看起来是这样的:
| 归档时间: |
|
| 查看次数: |
1917 次 |
| 最近记录: |