【问题标题】:How can I set different Title Views for different pages in TabbedPage layout in Xamarin.Forms?如何在 Xamarin.Forms 的 TabbedPage 布局中为不同页面设置不同的标题视图?
【发布时间】:2019-10-26 16:51:33
【问题描述】:

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

我已经在主选项卡式页面中设置了 并且它可以工作,但我想为每个页面设置不同的。

这是标签页:

<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>

视图是内容页面。

我希望第一页有一个标题视图,其中包含一些控件,例如搜索、删除等(这是一个汽车列表)和用户图片,以及其他带有标题和其他控件的页面。

【问题讨论】:

    标签: c# .net xamarin xamarin.forms


    【解决方案1】:

    通常我所做的是在每个ContentPage 中设置Title 属性,当我翻阅标签时它会反映到页面上

    <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>
    

    希望你能照顾好对齐和其他一切。 所以现在使用上述名称,您将能够随时访问标题图像和标签!

    【讨论】:

    • 是的,但我想要的不仅是文本,还有用户图像,以及我可以从代码中设置的更多内容。
    • 您是否尝试过使用 NavigationPage 的 TitleView API?
    • 是的,但它在单独的标签页中不起作用。我尝试设置它,但它什么也没做。唯一有效的是 ToolbarItems,但这还不足以满足我的需要。
    • 好的,你在使用 MVVM 吗?加你能加TitleView
    • 我没有使用 MVVM
    【解决方案2】:

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

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

    然后编辑新页面并添加 &lt;NavigationPage.TitleView/&gt;

    【讨论】:

      猜你喜欢
      • 2016-03-15
      • 1970-01-01
      • 1970-01-01
      • 2013-09-01
      • 1970-01-01
      • 2014-05-09
      • 2018-03-13
      • 2014-01-26
      • 1970-01-01
      相关资源
      最近更新 更多