2015-11-10 122 views
1

我的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> 

以下ListView它呈現如下:

而且只要你滾動只是一點點,它會顯示第一個元素(即頂部紅色空間等於高度)

同樣,您可以繼續滾動,直到最後一項完全消失(即底部的紅色空間等於高度)

我不改變任何代碼中的視圖的屬性/樣式 - 這一切都在XAML中完成,那麼爲什麼在這之前有這麼大的空間,後?

回答

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>