最后一个 StackLayout 项目丢失或被剪切

Last StackLayout Item is missing or cut

我正在用一个 ListView 创建 xamarin.forms 页面。 每个列表项模板由一个垂直 StackLayout 组成,其中包含 3 个 StackLayout。问题是:我只能看到前两个堆栈布局 第三个被隐藏或剪切或跳过,我不知道,我看不到它。

  <ContentPage.Content>
        <ListView x:Name="RoutesList" ItemsSource="{Binding Routes}">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell> 
                        <StackLayout BackgroundColor="#eee" Orientation="Vertical" Padding="5,0,0,5" VerticalOptions="FillAndExpand">

                            <StackLayout Orientation="Horizontal" VerticalOptions="StartAndExpand">
                                <Label Text="{Binding Name}" FontAttributes="Bold"></Label>
                                <Label Text="{Binding StartDate}" HorizontalOptions="EndAndExpand"></Label>
                            </StackLayout>

                            <StackLayout Orientation="Horizontal" BackgroundColor="#f94" >
                                <Label Text="{Binding RouteType}" FontAttributes="Bold"></Label>
                            </StackLayout>

                            <StackLayout Orientation="Horizontal" VerticalOptions="EndAndExpand">
                                <Label Text="{Binding CreatorFirstName}" FontAttributes="Bold" HorizontalOptions="EndAndExpand"></Label>
                                <Label Text="{Binding CreatorLastName}" FontAttributes="Bold" HorizontalOptions="End"></Label>
                            </StackLayout>

                        </StackLayout>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>
    </ContentPage.Content>

如何正确设置布局属性以便所有堆栈布局及其项目内容都适合?所有绑定属性都是常规的 strings\dates。我知道有 GridLayout 但我想知道如何使用 StackLayouts ?

您需要将 ListViewRowHeight 属性 设置为显示所有项目的内容。或者,您可以将 HasUnevenRows 设置为 true,但这是一个明显较慢的选​​项。