如何在Xamarin格式的所有屏幕中显示TabbedPage



我使用TabbedPage显示Xamarin表单的底部选项卡。为此,我用程序将子页面(第1页、第2页、第3页(添加到TabbedPage中。首先我有登录屏幕,点击登录按钮,它将重定向到选项卡页面,并在底部显示所有三个选项卡。

还有其他页面(第4页、第5页(,我们没有在选项卡式页面中显示为子页面。但根据要求,当用户打开第4页或第5页时,底部选项卡栏应该显示。

总的来说,我的意思是底部的选项卡栏应该显示给应用程序中的所有屏幕,即使有些屏幕不是TabbedPage的子屏幕。

谁能告诉我如何完成这项任务吗。提前谢谢。

您可以将TabbedPage的子级包装在NavigationPages中,这样当您从其中一个选项卡导航到另一个页面时,它们仍然会出现:

<?xml version="1.0" encoding="UTF-8" ?>
<TabbedPage
x:Class="SampleTabbedPage.Views.MainPage"
xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:views="clr-namespace:SampleTabbedPage.Views;assembly=SampleTabbedPage"
NavigationPage.HasNavigationBar="False">
<!-- Page 1 -->
<NavigationPage IconImageSource="ic_home">
<x:Arguments>
<views:HomePage />
</x:Arguments>
</NavigationPage>
<!-- Page 2 -->
<NavigationPage IconImageSource="ic_profile">
<x:Arguments>
<views:ProfilePage />
</x:Arguments>
</NavigationPage>
</TabbedPage>

在代码背后:

var tabbedPage = new TabbedPage();
tabbedPage.Children.Add(new NavigationPage(new Page1()));
tabbedPage.Children.Add(new NavigationPage(new Page2()));
tabbedPage.Children.Add(new NavigationPage(new Page3()));

然后你可以从其中一个子页面调用:

await Navigation.PushAsync(new YourNewPage());

最新更新