如何在Xamarin Carousel中将所有项目模板数据设置为单个视图
我已经尝试将itemtemplate中的所有项目制作成一个视图,如下图所示,如何通过使用Xamarin CarouselView实现这一点,我正在这样使用如何在Xamarin Carousel中将所有项目模板数据设置为单个视图,xamarin,xamarin.forms,carousel,itemtemplate,Xamarin,Xamarin.forms,Carousel,Itemtemplate,我已经尝试将itemtemplate中的所有项目制作成一个视图,如下图所示,如何通过使用Xamarin CarouselView实现这一点,我正在这样使用 carousel = new CarouselView(); carousel.BindingContext = this; carousel.ItemTemplate = itemTemplate; carousel.SetBinding(Carouse
carousel = new CarouselView();
carousel.BindingContext = this;
carousel.ItemTemplate = itemTemplate;
carousel.SetBinding(CarouselView.ItemsSourceProperty, new Binding(nameof(this.Items), mode: BindingMode.OneWay));
LinearItemsLayout linearItemsLayout = new LinearItemsLayout(ItemsLayoutOrientation.Horizontal);
linearItemsLayout.SnapPointsAlignment = SnapPointsAlignment.Start;
linearItemsLayout.SnapPointsType = SnapPointsType.Mandatory;
carousel.ItemsLayout = linearItemsLayout;
this.Children.Add(carousel,0,1);
做类似事情最简单的方法是使用水平方向 CollectionView可以通过将其ItemsLayout属性设置为HorizontalList在水平列表中显示其项目: 当您检查文档时,它给出了一个类似的示例
<CollectionView ItemsSource="{Binding Monkeys}"
ItemsLayout="HorizontalList">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid Padding="10">
<Grid.RowDefinitions>
<RowDefinition Height="35" />
<RowDefinition Height="35" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="70" />
<ColumnDefinition Width="140" />
</Grid.ColumnDefinitions>
<Image Grid.RowSpan="2"
Source="{Binding ImageUrl}"
Aspect="AspectFill"
HeightRequest="60"
WidthRequest="60" />
<Label Grid.Column="1"
Text="{Binding Name}"
FontAttributes="Bold"
LineBreakMode="TailTruncation" />
<Label Grid.Row="1"
Grid.Column="1"
Text="{Binding Location}"
LineBreakMode="TailTruncation"
FontAttributes="Italic"
VerticalOptions="End" />
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
或者,也可以通过将ItemsLayout属性设置为LinearItemsLayout对象,并将水平ItemsLayoutOrientation枚举成员指定为方向属性值来完成此布局:
<CollectionView ItemsSource="{Binding Monkeys}">
<CollectionView.ItemsLayout>
<LinearItemsLayout Orientation="Horizontal" />
</CollectionView.ItemsLayout>
...
</CollectionView>
...
这将产生一个单行列表,随着新项目的添加,该列表将水平增长:
Freakyali,使用CarouseView是否可以实现?CarouseView首先是实验性的,所以它有多个bug,其次,使用它无法实现预期的UI,因为它一次只能显示一个项目,而CollectionView则更易于使用,一年后就可以使用了,对于这种类型的UI,是否建议使用CarouseView?XF 5修复了几个问题bugs@KronosCollectionView仍然是一个可行的解决方案。但是你可以选择你喜欢的,现在更多的是偏好问题