【问题标题】:How to customize master details page header in xamarin forms如何在 xamarin 表单中自定义主详细信息页面标题
【发布时间】:2019-06-28 03:38:00
【问题描述】:

我正在显示一个主详细信息页面。

母版页包含菜单项列表,详细信息页将包含所选项目的详细信息。

默认情况下,详细信息页面在屏幕左侧显示标题。 我想自定义详细信息页面标题以显示在页面中心

是否可以自定义 Xamarin 表单中的详细信息页面标题栏?

此处附上截图

【问题讨论】:

  • 你想让页面中心的标题在android上对齐吗?就像您的情况一样,关于应该居中对齐?
  • 是的。那是正确的。安卓和iOS我都想要
  • iOS 默认居中对齐,Android 有点复杂
  • 感谢您的更新。我刚刚检查了iOS。是的,在 iOS 中它是居中对齐的。您能否建议我如何为 android 制作这个?.. 实际上,我什至需要进行更多更改,例如需要在标题栏中添加我的按钮,所以如果有任何方法可以使用任何自定义查看详情页标题?

标签: xamarin xamarin.forms xamarin.ios xamarin.android


【解决方案1】:

选项 1

我认为 TitleView (available since XF 3.2) 是您正在寻找的。您所要做的就是创建一个您想要拥有的 View 作为 TitleView 并将其分配给 NavigationPage:

代码

public class TitleViewPage : ContentPage
{
    public TitleViewPage()
    {
        var titleView = new Slider { HeightRequest = 44, WidthRequest = 300 };
        NavigationPage.SetTitleView(this, titleView);
        ...
    }
}

XAML

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="NavigationPageTitleView.TitleViewPage">
    <NavigationPage.TitleView>
        <Slider HeightRequest="44" WidthRequest="300" />
    </NavigationPage.TitleView>
    ...
</ContentPage>

参考:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/navigation/hierarchical#displaying-views-in-the-navigation-bar

选项 2

过去,在 TitleView 可用之前,我曾经简单地删除导航栏:

代码

NavigationPage.SetHasNavigationBar(this, false);

XAML

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             ...
             NavigationPage.HasNavigationBar="False">

然后我只是在我的 NavigationPage 顶部放了一个 StackLayout(我的自定义标题栏),其中包含我希望的所有图标/按钮/图像/格式化文本/等。

【讨论】:

    猜你喜欢
    • 2019-03-27
    • 2016-09-20
    • 2014-09-26
    • 1970-01-01
    • 2017-04-13
    • 2018-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多