我有一个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,就不再显示应用程序的标题。如何在两个平台上的标题文本都显示一次的情况下获得统一的行为?
答案 0 :(得分:1)
Android和UWP之间的默认行为不同。在Android和iOS中,如果您自定义导航栏的标题视图,则标题将不再显示。
您可以使用OnPlatform
,如Evgeniy Stepanov所述,添加其他titleLabel以在iOS和Android中显示标题。
您可以简单地添加一个ToolbarItem
来将“信息”按钮放置在导航栏的右侧:
public MainPage()
{
InitializeComponent();
Title = "My App";
ToolbarItems.Add(new ToolbarItem("", "info", () => { goToInfoPage(); }, ToolbarItemOrder.Primary, 1));
}
public void goToInfoPage() {
}
答案 1 :(得分:0)
您是否已将“ information.png”图像添加到android资源? Check it
尝试使用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>