我的Xamarin Shell应用程序FlyoutItem
在AppShell.xaml
文件中定义了以下元素:
<FlyoutItem ...>
<ShellContent Title="A" Route="R1" ... />
<ShellSection Title="B" Route="R2">
<ShellContent Title="C" Route="R3" ... />
<ShellContent Title="D" Route="R4" ... />
</ShellSection>
<ShellContent Title="D" Route="R5" .../>
<ShellContent Title="E" Route="R6" ... />
</FlyoutItem>
我想要获得的行为如下:
B
页面,我希望用户被重定向到已命名的C
选项卡(这是默认行为,可以直接使用)。ShellSection
B
D
页面,我希望用户被重定向到named的D
选项卡。ShellSection
B
我如何获得这个?
如果您满意以下内容:
如果当前选择/显示的页面是上部选项卡“ D”(底部选项卡“ B”的子级),并且用户再次单击底部选项卡“ B”,则什么也不会发生,则导航不会转到“ C”,如果如果显示页面“ A”或“ E”(属于“ B”部分的页面除外)并且您单击“ B”,则将显示“ C”,如果单击“ D”,则将显示“ D” ”,那么这个问题可能会对您有所帮助。
在您的Appshell.cs中:
public AppShell()
{
...
InitializeComponent();
Navigating += Shell_Navigating;
}
private async void Shell_Navigating(object sender, ShellNavigatingEventArgs e)
{
if (e.Target.Location.OriginalString.Equals("//R5") && e.CanCancel)
{
e.Cancel();
await Shell.Current.GoToAsync("//R2/R4");
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句