Xaml Forms Shell如何删除hamburger菜单中的FlyoutItem元素的空格
我使用的是Shell,我有一个设计,其中我有一个带有AsingleItem中的FlyoutDisplayOptions属性的FlyoutItem,我还有几个MenuItem,此设计有一个带有选项卡的页面和一个显示菜单项的汉堡菜单,但问题是,如果我放置整个弹出项的标题和图标,它是空的,但如果我将其留空,空间不会消失并且是空的,这是一个浪费的空间,我的问题是如何删除该空间 这是我的代码:Xaml Forms Shell如何删除hamburger菜单中的FlyoutItem元素的空格,xaml,xamarin.forms,xamarin.forms.shell,Xaml,Xamarin.forms,Xamarin.forms.shell,我使用的是Shell,我有一个设计,其中我有一个带有AsingleItem中的FlyoutDisplayOptions属性的FlyoutItem,我还有几个MenuItem,此设计有一个带有选项卡的页面和一个显示菜单项的汉堡菜单,但问题是,如果我放置整个弹出项的标题和图标,它是空的,但如果我将其留空,空间不会消失并且是空的,这是一个浪费的空间,我的问题是如何删除该空间 这是我的代码: <FlyoutItem Route="home" x:Name="flyoutItem"
<FlyoutItem Route="home" x:Name="flyoutItem"
FlyoutDisplayOptions="AsSingleItem">
<ShellContent Route="bottomtab1"
Style="{StaticResource TabBackground}"
Icon="home_icon"
ContentTemplate="{DataTemplate views:x}" />
<ShellContent Route="bottomtab2"
Style="{StaticResource TabBackground}"
Icon="home_icon"
ContentTemplate="{DataTemplate DataTemplate views:x}" />
<ShellContent Route="bottomtab3"
Style="{StaticResource TabBackground}"
Icon="home_icon"
ContentTemplate="{DataTemplate DataTemplate views:x}" />
<ShellContent Route="bottomtab4"
Style="{StaticResource TabBackground}"
Icon="home_icon"
ContentTemplate="{DataTemplate DataTemplate views:x}" />
<ShellContent Route="bottomtab5"
Style="{StaticResource TabBackground}"
Icon="home_icon"
ContentTemplate="{DataTemplate DataTemplate views:x}" />
</FlyoutItem>
<MenuItem Text="Test 1"
IconImageSource="home_icon" />
<MenuItem Text="Test 2"
IconImageSource="home_icon" />
<MenuItem Text="Test 3"
IconImageSource="home_icon"/>
<MenuItem Text="Test 4"
IconImageSource="home_icon"/>
<MenuItem Text="Test 5"
IconImageSource="home_icon"/>
<MenuItem Text="Test 6"
IconImageSource="home_icon"/>
我在这些图片中留下了设计
如果要删除弹出按钮中的项目,但该项目仍显示在主页面中。如下图所示。 首先,删除
弹出项的内容。然后对所有的shell内容使用TabBar
,就像下面的代码一样
<TabBar>
<Tab Title="Browse" Icon="tab_feed.png">
<ShellContent ContentTemplate="{DataTemplate local:ItemsPage}" />
</Tab>
<Tab Title="About" Icon="tab_about.png">
<ShellContent ContentTemplate="{DataTemplate local:AboutPage}" />
</Tab>
</TabBar>
但是如果您将其隐藏,当您单击任意菜单项时,您将不会返回主页(显示aminials信息)。(例如,我的主页将显示aminials信息,当我单击关于
菜单项时,我无法像下面的GIF那样访问我的aminials页面)
因此,我建议您为您的弹出式菜单项提供标题和图标,当您单击其他菜单项时,您可以返回到上一个主页。下面是运行GIF。
我有一个类似的场景-我有几个页面只能根据启动逻辑查看,我需要shell以正确的顺序加载它们,但在弹出按钮中也不可见。我能够做到这一点,只需添加一些页面,这些页面应该以分层顺序从弹出按钮隐藏,如带有IsEnabled=“True”
和isIsVisible=“False”
属性的FlyoutItem
s。从
IsEnabled类型为boolean,定义该项在chrome中是否可选择
类型为bool的IsVisible表示弹出项是否隐藏在
弹出式菜单。其默认值为true
- 当我只将
IsVisible
设置为false时,我非常确定我仍然能够单击弹出项,即使它不在那里。因此,我还将IsEnabled
设置为false。可能只有IsVisible=False
是必需的
当应用程序运行MainPage=new AppShell()
时,它将首先加载CheckConnection
页面(现在从弹出按钮中隐藏),该页面具有导航到正确页面的逻辑(请记住,正如@Leon Lu-MSFT在其回答中所说,以确保您仍然可以正确地导航到“隐藏”页面
结果是,只有配置页面可在弹出按钮中点击,并且没有间距,并且没有用户可以意外单击以导致shell导航的不可见位置(如果您有一个可单击的“空间”是一个不可见的shell弹出按钮项,则情况就是如此)
您应该能够从中删除空白。我可以删除弹出项目的图标和图标空间吗?谢谢,这真的帮助了我。我将初始化/加载页面设置为“IsVisible=False”。它最初显示(正确),但不显示在菜单中。伟大的
<FlyoutItem
IsEnabled="True"
IsVisible="False"
Title="CheckConnectionPage"
>
<ShellContent Route="CheckConnectionPage" ContentTemplate="{DataTemplate local:CheckConnectionPage}" />
</FlyoutItem>
<FlyoutItem
IsEnabled="True"
IsVisible="False"
Title="StatPage"
>
<ShellContent Route="StatPage" ContentTemplate="{DataTemplate local:StatPage}" />
</FlyoutItem>
<FlyoutItem Title="Configuration" Icon="settings_icon_black.png">
<ShellContent Route="ConfigurePage" ContentTemplate="{DataTemplate local:ConfigurePage}" />
</FlyoutItem>