xaml - 滚动时保持 ListView.Header 锚定/粘性/冻结到顶部
问题描述
垂直向下滚动项目时,如何将内置Header
的冻结保持在顶部?ListView
ListView
在标记为重复之前:我尝试在针对 Android 的 Xamarin.Forms的 UWP 中的 Keep ListView.HeaderTemplate visible/static/sticky 中应用答案,但没有成功。
短代码示例:
<ListView ItemsSource="{Binding MyList}"
HasUnevenRows="True"
SeparatorVisibility="Default"
CachingStrategy="RecycleElement">
<ListView.Header>
<Label HorizontalTextAlignment="Center"
FontAttributes="Bold"
Text="Header Title"/>
</ListView.Header>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="{Binding Name}"/>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
解决方案
如果列表不长,这是一种替代方法
<StackLayout>
<Label HorizontalTextAlignment="Center"
FontAttributes="Bold"
Text="Header Title"/>
<StackLayout BindableLayout.ItemsSource="{Binding MyList}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<StackLayout>
<Label Text="{Binding Name}"/>
<!-- boxview as separator -->
<BoxView HeightRequest="1" Color="Aqua" HorizontalOptions="FillAndExpand"/>
</StackLayout>
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
</StackLayout>
推荐阅读
- google-cloud-platform - Cloudrun Force Override 标志未按预期工作
- python - Unittest 正在运行整个 python 文件而不是单个函数
- python - Shapely 已安装,但仍然收到 ModuleNotFoundError: No module named 'shapely'
- nginx - datahub 505 HTTP 版本不支持
- dart - 飞镖中的异步
- jupyter-notebook - 如何仅按百分比显示前 10 个热门地点?
- vue.js - Vuex + Vue 从服务器拉取状态一次
- qtwebengine - 使用专有编解码器构建 QTWebEngine 6.2.0
- ibm-cloud - Cloud Object Storage 存储桶(有什么意义/用途) IBM Cloud
- php - Woocommerce 订阅:隐藏“活动”订阅的取消按钮