Xamarin MasterDetailPage具有多个部分和不同的样式

时间:2018-09-17 21:07:13

标签: c# xaml xamarin.forms

我成功创建了Xamarin.Forms MasterDetailPage,但是我需要类似的东西,

Design of MasterDetail with two sections having different designs

我以为有两个ListView个孩子

<ContentPage ...
             xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             Title="Master Main">
    <Grid VerticalOptions="Fill">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto" />
            <RowDefinition Height="Auto" />
        </Grid.RowDefinitions>
        <ListView x:Name="MenuItemsListView"
                  SeparatorVisibility="None"
                  HasUnevenRows="False">
            <ListView.ItemTemplate>
            ...
            </ListView.ItemTemplate>
        </ListView>
        <ListView x:Name="otherItemsListView">
        ...
        </ListView>
    </Grid>
</ContentPage>

但是无论我设置了RowDefinitions还是相等地划分了网格的高度。我没主意。请帮忙。

2 个答案:

答案 0 :(得分:2)

如果您使用两个列表视图,则它们将具有单独的滚动。我想你不想这样吗? 您可以做的是对列表项源中的不同项类型使用不同的项模板。如果需要,请查看https://docs.microsoft.com/en-us/xamarin/xamarin-forms/app-fundamentals/templates/data-templates/selector

答案 1 :(得分:1)

如果您希望网格中的某些内容占屏幕的一定比例,请使用星形调整大小。为了获得想要的效果,可能类似于:

<Grid.RowDefinitions>
     <RowDefinition Height="8*" />
     <RowDefinition Height="2*" />
</Grid.RowDefinitions>

在此示例中,第一行占据了80%的网格,第二行占据了20%的网格。请注意,我也可以使用.8和.2或80和20,但仍然获得相同的效果。看看Xamarin docs关于网格的更多信息。