问题描述
我是 xamarin 表单和 shell 的新手,我目前正在尝试使用 Shell (Xamarin.Forms Shell) 设计应用程序的层次结构。我想设计我的应用程序,以便用户登录后,他将被带到一个页面(我们称之为主页),该页面可以从弹出菜单中选择,并在底部有自己独特的选项卡。我还希望在弹出菜单中可以看到另一个页面(我们称之为主页二),这样如果用户点击主页二,它就会被带到主页二,它在底部有自己的不同选项卡。用户应该会看到不同的标签,具体取决于他们在弹出菜单中选择的主页。
这里是整体布局的想法:
我目前有两个问题。首先,我不确定如何定义我的 shell 来解释具有不同选项卡的不同主页。其次,当用户选择退出时,它仍然显示弹出菜单(汉堡菜单),即使只有在用户成功登录时才能看到。
这是我的 AppShell.xaml:
<ShellItem Route="Start" FlyoutItemIsVisible="False">
<ShellContent Route="StartPage" ContentTemplate="{DataTemplate local:StartPage}" />
</ShellItem>
<ShellItem Route="Login" FlyoutItemIsVisible="False" >
<ShellContent Route="LoginPage" ContentTemplate="{DataTemplate local:LoginPage}" />
</ShellItem>
<ShellItem Route="Registration" FlyoutItemIsVisible="False" >
<ShellContent Route="RegistrationPage" ContentTemplate="{DataTemplate local:RegistrationPage}" />
</ShellItem>
<FlyoutItem Title="Home Page One" Icon="icon_about.png">
<ShellContent Route="HomePageOne" ContentTemplate="{DataTemplate local:HomePageOne}" />
</FlyoutItem>
<FlyoutItem Title="Home Page Two" Icon="icon_Feed.png">
<ShellContent Route="HomePageTwo" ContentTemplate="{DataTemplate local:HomePageTwo}" />
</FlyoutItem>
<!-- When the Flyout is visible this will be a menu item you can tie a click behavior to -->
<MenuItem Text="logout" StyleClass="MenuItemLayoutStyle" Clicked="Menulogout_Clicked">
</MenuItem>
这是我的 AppShell.xaml.cs:
public partial class AppShell : Xamarin.Forms.Shell
{
public AppShell()
{
InitializeComponent();
Routing.RegisterRoute(nameof(StartPage),typeof(StartPage));
Routing.RegisterRoute(nameof(RegistrationPage),typeof(RegistrationPage));
Routing.RegisterRoute(nameof(LoginPage),typeof(LoginPage));
}
private async void Menulogout_Clicked(object sender,EventArgs e)
{
await Shell.Current.GoToAsync("StartPage");
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)