我的ListView
在他们的孩子之前和之后都添加了大量的填充。
例如,我的主人
中有以下ListView
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:viewModel="clr-namespace:ViewModel;assembly=App"
x:Class="Pages.Master"
Title="Menu">
<ContentPage.BindingContext>
<viewModel:MasterViewModel />
</ContentPage.BindingContext>
<ListView ItemsSource="{Binding Pages}"
ItemSelected="ListView_OnItemSelected"
BackgroundColor="Red">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<Label Text="S" BackgroundColor="White" />
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ContentPage>
它呈现以下内容:
只要稍微滚动一下,它就会显示第一个元素(即顶部红色空间等于高度)
同样,您可以继续滚动,直到最后一项完全消失(即底部红色空间等于高度)
我没有改变代码中任何视图的属性/样式 - 它都是在XAML中完成的,那为什么前后有这么大的空间呢?
答案 0 :(得分:1)
对ListView.Header和ListView.Footer的渲染似乎存在问题
我将以下内容添加到我的列表视图XAML中,并删除了巨型填充:
<ListView.Header>
<StackLayout HeightRequest="0" />
</ListView.Header>
<!-- ItemTemplate -->
<ListView.Footer>
<StackLayout HeightRequest="0" />
</ListView.Footer>
由于此问题影响了我的所有列表视图,我选择在App.xaml中将其添加为全局应用样式:
<Style TargetType="ListView">
<Setter Property="Header">
<Setter.Value>
<StackLayout HeightRequest="0" />
</Setter.Value>
</Setter>
<Setter Property="Footer">
<Setter.Value>
<StackLayout HeightRequest="0" />
</Setter.Value>
</Setter>
</Style>