如何在 ios Xamarin 表单中调整我的列表视图

How to adjust my listview in ios Xamarin forms

我在 iOS 上的 ListView 有问题。我无法将它调整到所有 iOS 模板,例如:将 HeightRequest = "855" 放在我的 iPhone 7 上它已经正确适合,否则放在 iPhone 5 和更小的 ListView 来自 scrow。所以我想让我的 ListView 自动调整到屏幕尺寸。

  <ListView x:Name="listView"
            CachingStrategy="RecycleElement"
            ItemsSource="{Binding FeedItems}"
            HasUnevenRows="True"
            AbsoluteLayout.LayoutFlags="All"
            AbsoluteLayout.LayoutBounds="0,0,1,1" HeightRequest="855">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid Padding="5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="70"/>
                                <ColumnDefinition Width="5"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <StackLayout HeightRequest = "60" WidthRequest="60">
                                <Image x:Name="Image"  Source="{Binding Image}" Scale="1.0" Aspect="AspectFill" VerticalOptions="FillAndExpand"/>
                         </StackLayout>
                            <StackLayout Grid.Column="2" Spacing="4"  VerticalOptions="Center">
                               <Label Text="{Binding Category}" TextColor="White"  FontSize="Small" LineBreakMode="NoWrap" BackgroundColor="{Binding Color_category}"/>
                                <Label Text="{Binding PublishDate}" TextColor="#666666" FontSize="Small" LineBreakMode="NoWrap"/>
                                <Label Text="{Binding Title}" TextColor="#234084" Font="Bold" FontSize="Small" LineBreakMode="WordWrap"/>
                            </StackLayout>
                        </Grid>
                    </ViewCell>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

再扩大一点。

HeightRequest 用于为元素定义固定大小。 Xamarin 将尽最大努力实现这一点。另一方面,当你希望你的尺寸是相对的时,你可以使用 VerticalOptionsHorizontalOptions。这两个属性将采用 LayoutOptions 结构,默认值为 Fill(不展开)。

这个结构有两组属性,我称之为 "regular"

  • 居中

  • 开始

  • 结束

  • Fll

以及 "expands"

  • 居中并展开

  • 开始和展开

  • 结束并展开

  • 填充和展开

您可以阅读有关这些内容的更多信息here

最后一个 FillAndExpand 将在其使用的方向上使用所有可用的 space。这是您应该在 ListView 中使用的,以使其与屏幕一样大

希望对您有所帮助。-