xamarin - 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>
这是它现在的样子(只是一个模型):
这是我希望它看起来的样子:
解决方案
我最终玩了一会儿。我不确定它在其他手机格式和尺寸上的表现如何,因为我还没有测试过。但最终我在调整了PeakAreaInsets
, 并调整了SnapPointsAlignment
. 目前我已将其设置PeakAreaInsets = 350
为SnapPointsAlignment="Start"
推荐阅读
- node.js - 无法让 websocket 客户端作为子进程运行
- reactjs - React useState Hook setter 没有数组变量的结果
- docker - 如何解决docker容器内的权限被拒绝?
- shell - adb:找不到命令 - Window 10 shell
- android - 用于 Android 的 Qt 缺少编译器
- ruby-on-rails - 在没有开发选项的 Plesk 管理的机器上使用带有本机扩展的预编译 gem 时出错
- git - 参考 `remotes/origin/HEAD` 的用途是什么?
- uipangesturerecognizer - 如何在 panGesture 之后修复新的 textField 位置?
- sqlite - 如何在有序表中选择行并检索其上方和下方的行数?
- php - 在php中计算一个文件夹中所有文件和所有目录的总和