导航到 Xamarin 中的特定顶部标签页 Shell
Navigate to a specific top tab page in Xamarin Shell
我的 Xamarin Shell 应用程序在 AppShell.xaml
文件中定义了以下 FlyoutItem
元素:
<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
页面,我希望将用户重定向到名为 B
的 ShellSection
的 C
选项卡(这是默认行为,开箱即用)。
- 单击
D
页面,我希望将用户重定向到名为 B
的 ShellSection
的 D
选项卡。
我如何获得这个?
如果您同意以下内容:
如果当前 selected/displayed 页面是上部选项卡“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");
}
}
我的 Xamarin Shell 应用程序在 AppShell.xaml
文件中定义了以下 FlyoutItem
元素:
<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
页面,我希望将用户重定向到名为B
的ShellSection
的C
选项卡(这是默认行为,开箱即用)。 - 单击
D
页面,我希望将用户重定向到名为B
的ShellSection
的D
选项卡。
我如何获得这个?
如果您同意以下内容:
如果当前 selected/displayed 页面是上部选项卡“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");
}
}