首页 > 解决方案 > Xamarin Carousel View:峰值时对齐当前项目中心?

问题描述

我有一个 Xamarin Carousel 视图,其中 PeakAreaInsets 设置得相当高,这样我就可以一次看到列表中的多个项目。但是我注意到当前项目设置为对齐时,当我希望它对齐到页面中心时,它会更多地与页面顶部对齐。我怎样才能做到这一点?

这是有问题的代码片段:

<ContentPage.Content>
    <CarouselView ItemsSource="{Binding Days}"
                          CurrentItem="{Binding SelectedDay}"
                          VerticalOptions="Center"
                          HorizontalOptions="Center"
                          PeekAreaInsets="300"
                          x:Name="DayCarousel">
                <CarouselView.ItemsLayout>
                    <LinearItemsLayout SnapPointsAlignment="Center"
                                       SnapPointsType="Mandatory"
                                       Orientation="Vertical"/>
                </CarouselView.ItemsLayout>
                <CarouselView.ItemTemplate>
                    <DataTemplate>
                        <StackLayout Spacing="0"
                                     Orientation="Vertical"
                                     HorizontalOptions="Center"
                                     VerticalOptions="Center"
                                     Margin="30,10">
                            <Label Text="{Binding FormattedDate}"
                                   HorizontalOptions="Center"
                                   VerticalOptions="Center"
                                   Style="{StaticResource LabelStyle}"/>
                            <Label Text="{Binding TitleText}"
                                   HorizontalOptions="Center"
                                   VerticalOptions="Center"
                                   Style="{StaticResource LabelHeader1Style}"/>
                            <StackLayout.GestureRecognizers>
                                <TapGestureRecognizer Command="{Binding BindingContext.SelectDay, Source={x:Reference this}}"
                                                      CommandParameter="{Binding .}"/>
                            </StackLayout.GestureRecognizers>
                        </StackLayout>
                    </DataTemplate>
                </CarouselView.ItemTemplate>
            </CarouselView>
</ContentPage.Content>

这是它现在的样子(只是一个模型):

在此处输入图像描述

这是我希望它看起来的样子:

在此处输入图像描述

标签: xamarinxamarin.formsalignmentcarousel

解决方案


我最终玩了一会儿。我不确定它在其他手机格式和尺寸上的表现如何,因为我还没有测试过。但最终我在调整了PeakAreaInsets, 并调整了SnapPointsAlignment. 目前我已将其设置PeakAreaInsets = 350SnapPointsAlignment="Start"


推荐阅读