Xamarin.Forms TitleView右侧的“信息”按钮

时间:2019-04-15 15:48:02

标签: xamarin xamarin.forms

我有一个Android / iOS / UWP Xamarin.Forms应用程序。我要在TitleView所在的屏幕顶部放置一个按钮,将用户引导到一个页面,该页面向他们显示有关我的应用程序的更多信息。

我尝试过:

<NavigationPage.TitleView>

    <StackLayout>
        <Label Text="My App" FontSize="Large"></Label>

        <Image x:Name="info" 
               Source="information.png"  
               WidthRequest="20"  
               HeightRequest="20" 
           />
    </StackLayout>

</NavigationPage.TitleView>

在UWP上,这会导致在TitleView中除了显示 MyApp 之外,还显示应用程序的标题。但是在Android中,一旦添加了自定义的TitleView,就不再显示应用程序的标题。如何在两个平台上的标题文本都显示一次的情况下获得统一的行为?

2 个答案:

答案 0 :(得分:1)

Android和UWP之间的默认行为不同。在Android和iOS中,如果您自定义导航栏的标题视图,则标题将不再显示。

  1. 您可以使用OnPlatform,如Evgeniy Stepanov所述,添加其他titleLabel以在iOS和Android中显示标题。

  2. 您可以简单地添加一个ToolbarItem来将“信息”按钮放置在导航栏的右侧:

    public MainPage()
    {
        InitializeComponent();
    
        Title = "My App";
    
        ToolbarItems.Add(new ToolbarItem("", "info", () => { goToInfoPage(); }, ToolbarItemOrder.Primary, 1));
    }
    
    public void goToInfoPage() {
    
    }
    

答案 1 :(得分:0)

  1. 您是否已将“ information.png”图像添加到android资源? Check it

  2. 尝试使用OnPlatform

    <StackLayout Orientation="Horizontal">
        <Label Text="My App" FontSize="Large"/>
        <Image x:Name="info" WidthRequest="20" HeightRequest="20">
            <Image.Source>
                <OnPlatform UWP="logo.png" Default="logo" x:DataType="ImageSource"/>
            </Image.Source>
        </Image>
    </StackLayout>