我正进入一个新项目,并且一直试图在标题中的Xamarin Forms的同一页上插入导航栏和选项卡栏而陷入困境。问题是:我只能插入一个或另一个,而不能两者都插入。你们是否知道解决此问题的任何方法,例如使用自定义渲染器或类似的方法?
XAML代码都以
开头<ContentPage ... />
或者以
开头<TabbedPage ... />
如果有人可以帮忙,我会很高兴!
答案 0 :(得分:1)
是否可以在Xamarin.Forms的同一页面中插入导航栏和标签栏?
您当然可以实施!您可以用子Page对象的集合(例如ContentPage或NavigationPage实例的集合)填充TabbedPage。请参考以下代码。
在App.xaml.cs中(主页是一个TabbedPage)
public partial class App : Application
{
public App()
{
InitializeComponent();
MainPage =new HomePage();
}
protected override void OnStart()
{
// Handle when your app starts
}
protected override void OnSleep()
{
// Handle when your app sleeps
}
protected override void OnResume()
{
// Handle when your app resumes
}
}
在HomePage.xaml.cs中(Mypage和MyPage1是ContentPages)
public partial class HomePage : TabbedPage
{
public HomePage()
{
InitializeComponent();
var contentPage = new MyPage1();
contentPage.Title = "Page1";
contentPage.Icon = "Mine.png";
var navigationPage = new NavigationPage(new MyPage());
navigationPage.Icon = "Mine.png";
navigationPage.Title = "Page2";
Children.Add(contentPage);
Children.Add(navigationPage);
}
}
}
或者您可以在HomePage.xaml中使用XAML代码实现它
<?xml version="1.0" encoding="UTF-8"?>
<TabbedPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:local="clr-namespace:xxx" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="xxx.HomePage">
<local:MyPage Title="Page1" Icon="xxx.png"/>
<NavigationPage Title="Page2" Icon="xxx.png">
<x:Arguments>
<local:MyPage1 />
</x:Arguments>
</NavigationPage>
</TabbedPage>
现在TabbedPage填充了两个子Page对象。第一个子项是ContentPage实例,第二个选项卡是包含ContentPage实例的NavigationPage。就像下面的图片一样。
答案 1 :(得分:0)
TabbedPage是其他页面的容器。每个选项卡都可以包含一个子导航页
TabbedPage
Tab 1 - NavigationPage(ContentPage)
Tab 2 - ContentPage
Tab 3 - NavigationPage(ContentPage)