如何在 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 将尽最大努力实现这一点。另一方面,当你希望你的尺寸是相对的时,你可以使用 VerticalOptions
和 HorizontalOptions
。这两个属性将采用 LayoutOptions 结构,默认值为 Fill(不展开)。
这个结构有两组属性,我称之为 "regular"
居中
开始
结束
Fll
以及 "expands"
居中并展开
开始和展开
结束并展开
填充和展开
您可以阅读有关这些内容的更多信息here。
最后一个 FillAndExpand
将在其使用的方向上使用所有可用的 space。这是您应该在 ListView
中使用的,以使其与屏幕一样大
希望对您有所帮助。-
我在 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 将尽最大努力实现这一点。另一方面,当你希望你的尺寸是相对的时,你可以使用 VerticalOptions
和 HorizontalOptions
。这两个属性将采用 LayoutOptions 结构,默认值为 Fill(不展开)。
这个结构有两组属性,我称之为 "regular"
居中
开始
结束
Fll
以及 "expands"
居中并展开
开始和展开
结束并展开
填充和展开
您可以阅读有关这些内容的更多信息here。
最后一个 FillAndExpand
将在其使用的方向上使用所有可用的 space。这是您应该在 ListView
中使用的,以使其与屏幕一样大
希望对您有所帮助。-