【问题标题】:Xamarin Forms - Master Detail page with empty spaceXamarin Forms - 带有空白区域的主详细信息页面
【发布时间】:2020-08-09 19:10:55
【问题描述】:

我的项目有问题。

在“App.xaml.cs”上,我检查用户首选项,如果有值则用户转到第 1 页,如果未找到值则用户转到第 2 页。

第 2 页加载正常,没有任何问题。

但是第 1 页(我正在使用主详细信息页面)在界面上有问题。我不知道它是怎么发生的,几分钟前我刚刚重新打开了我的项目,尝试编译然后我得到了这个。有人可以帮帮我吗?

a white empty space between the notification bar and the title bar of the master detail page

App.Xaml.cs

public App()
{
InitializeComponent();
bool hasKey = Preferences.ContainsKey("sess");
if (hasKey == true)
{
var mySession = Preferences.Get("sess", "");
App.Current.MainPage = new NavigationPage(new Master());
}
else
{
App.Current.MainPage = new NavigationPage(new Views.Forms.LoginWithSocialIconPage());
}
}

MasterMaster.xaml

<StackLayout>
<ListView x:Name="MenuItemsListView" SeparatorVisibility="None" HasUnevenRows="true" ItemsSource="{Binding MenuItems}">
<ListView.Header>
<Grid BackgroundColor="Black">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="10"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="30"/>
<RowDefinition Height="80"/>
<RowDefinition Height="Auto"/>
<RowDefinition Height="10"/>
</Grid.RowDefinitions>
<Frame Grid.Column="1" Grid.Row="1" x:Name="circleFrame" HasShadow="False" Padding="0" Margin="0" VerticalOptions="Center" HorizontalOptions="Center" BackgroundColor="Black" BorderColor="Black" CornerRadius="10" IsClippedToBounds="True">
<Image x:Name="circleImg" Source="icon.png"></Image>
</Frame>
<Label Grid.Column="1" Grid.Row="2" TextColor="White" Text="Nome" FontFamily="{StaticResource Montserrat-Medium}" Style="{DynamicResource SubtitleStyle}"/>
</Grid>
</ListView.Header>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="15,10" HorizontalOptions="FillAndExpand">
<Label VerticalOptions="FillAndExpand" FontFamily="{StaticResource Montserrat-Medium}" VerticalTextAlignment="Center" Text="{Binding Title}" FontSize="18"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</StackLayout>

MasterDetail.xaml

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Thinkzr.MasterDetail" Title="Título">
<StackLayout Padding="10">
<Label Text="Conteúdo carregado aqui"/>
<!--<Image Source="icon.png"/>-->
</StackLayout>
</ContentPage>

Master.xaml

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="Thinkzr.Master" xmlns:pages="clr-namespace:Thinkzr">
<MasterDetailPage.Master>
<pages:MasterMaster x:Name="MasterPage" />
</MasterDetailPage.Master>
<MasterDetailPage.Detail>
<NavigationPage>
<x:Arguments>
<pages:MasterDetail />
</x:Arguments>
</NavigationPage>
</MasterDetailPage.Detail>
</MasterDetailPage>

【问题讨论】:

  • 贴出相关代码会很有帮助
  • 对不起。我刚刚添加了代码
  • 不应将 MasterDetail 包装在 NavigationPage 中
  • MasterDetail 页面是由 Visual Studio 生成的,我只是在菜单上添加了 de frame+image,我没有更改代码。它在清晨工作,但现在我遇到了这个问题......
  • 我的意思是App.Current.MainPage = new NavigationPage(new Master());

标签: xaml xamarin xamarin.forms xamarin.android


【解决方案1】:

来自docs

MasterDetailPage 被设计为根页面,并将其用作 其他页面类型中的子页面可能会导致意外和 不一致的行为。

【讨论】:

    猜你喜欢
    • 2019-07-19
    • 2016-09-22
    • 1970-01-01
    • 2018-12-17
    • 2016-09-20
    • 1970-01-01
    • 2014-09-26
    • 2018-04-15
    • 2016-10-26
    相关资源
    最近更新 更多