如何在Xamarin.Forms的TabbedPage布局中为不同的页面设置不同的标题视图?

时间:2019-06-12 08:25:15

标签: c# .net xamarin xamarin.forms

我有一个主导航页,它是一个选项卡式页面,链接着不同的视图。

我已经在主选项卡式页面中设置了,并且可以使用,但是我想为每个页面设置不同的内容。

这是选项卡式页面:

<TabbedPage
    NavigationPage.HasBackButton="False"
    BackgroundColor="Black"
    xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    x:Class="TestProiectLicenta.Views.UserPageForm" xmlns:local="clr-namespace:TestProiectLicenta.Views"
    xmlns:controls="clr-namespace:ImageCircle.Forms.Plugin.Abstractions;assembly=ImageCircle.Forms.Plugin"
    xmlns:refresh="clr-namespace:Refractored.XamForms.PullToRefresh;assembly=Refractored.XamForms.PullToRefresh">

    <TabbedPage.Children>

        <local:CarsListPage Title="Cars" Icon="new_car_icon"/>
        <local:NewCarsListPage Title="New Cars" Icon="new_car_icon"/>

        <local:ChooseMethodFormPage Title="Add Car" Icon="new_add_icon" />
        <local:UserViewPage Title="New Page Test" Icon="new_user_icon" />
        <ContentPage Title="Settings" Icon="new_settings_icon.png">
            <StackLayout VerticalOptions="Center" HorizontalOptions="Center">
                <StackLayout Orientation="Horizontal">
                    <StackLayout Orientation="Horizontal">
                        <Image Source="face_id" />
                        <Label Text="FaceID Login?" />
                    </StackLayout>
                    <Switch IsToggled="false" Toggled="Handle_Toggled" x:Name="Fid" />
                </StackLayout>
                <Button Text="Sign Out" Clicked="SignOutButton" />
            </StackLayout>
        </ContentPage>
    </TabbedPage.Children>
</TabbedPage>

视图是内容页面。

我想为首页提供一个标题视图,其中包含一些控件,例如搜索,删除等(这是汽车列表)和用户图片,而其他控件则具有标题和其他控件。

2 个答案:

答案 0 :(得分:1)

通常,我要做的是在每个Title中设置ContentPage属性,当我翻阅选项卡时它会反映在页面上

<ContentPage  xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         NavigationPage.BackButtonTitle=""
         Title="My Demo Title">...

更新:

在您的TabbedPage中,您可以像下面这样添加NavigationPage's TitleView

 <TabbedPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         NavigationPage.BackButtonTitle=""
         Title="My Demo Title">
<NavigationPage.TitleView>
 <StackLayout Orientation="Horizontal">
    <Image x:Name="TitleImage"/>
    <Label x:Name="TitleLabel"/>
 </StackLayout>
</NavigationPage.TitleView>

希望您可以注意对齐以及其他所有内容。 因此,现在使用上述名称,您将可以随时访问标题图像和标签!

答案 1 :(得分:0)

我找到了解决我问题的方法。在TabbedPage内,对于需要特殊导航栏的每个页面,您都需要这样声明:

    <NavigationPage Title="Schedule" IconImageSource="schedule.png">
        <x:Arguments>
            <local:SchedulePage />
        </x:Arguments>
    </NavigationPage>

然后,您编辑新页面并添加 <NavigationPage.TitleView/>