我想在Xamarin Forms
中重新创建与此画廊类似的东西。我想要一个ListView
进行分组,它的项目显示在网格中。
我知道如何在ListView
中对项目进行分组,但是我不知道如何在网格中显示项目。网格布局看起来与Flex Layout
类似,但据我所知,Flex布局没有将项目分组的方法。如何在Xamarin中创建它?
答案 0 :(得分:0)
您应为此使用新的CollectionView
:
例如代码:
<CollectionView
x:Name="collectionView"
Margin="5"
ItemSizingStrategy="MeasureAllItems"
ItemsSource="{Binding Results}"
SelectionMode="None">
<CollectionView.ItemTemplate>
<DataTemplate>
<Image
HorizontalOptions="CenterAndExpand"
Source="{Binding ImageSource}"
VerticalOptions="CenterAndExpand" />
</DataTemplate>
</CollectionView.ItemTemplate>
<CollectionView.ItemsLayout>
<GridItemsLayout
HorizontalItemSpacing="10"
Orientation="Vertical"
Span="2"
VerticalItemSpacing="10" />
</CollectionView.ItemsLayout>
<CollectionView.EmptyView>
<StackLayout>
<Label
FontSize="Title"
HorizontalOptions="CenterAndExpand"
Text="{locale:Translate Global_No_Data_Found}"
VerticalOptions="CenterAndExpand" />
</StackLayout>
</CollectionView.EmptyView>
</CollectionView>
在这里,ItemsLayout是定义项目外观的选项,包括网格和线性。
要根据图像添加日期部分,请使用Group标头模板,就像ListView一样。
请注意,CollectionView
数据模板采用视图而非ViewCell。
使用ViewCell会抛出未指定强制类型转换的异常。
有关CollectionView的更多信息,请参见:https://docs.microsoft.com/en-us/xamarin/xamarin-forms/user-interface/collectionview/layout#vertical-grid
如有查询,请随时回来。