2015-11-10 2 views
1

My ListView s все добавляют огромное количество отступов до и после их детей.Элементы 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, так почему же такое огромное количество пространства до и после после?

ответ

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> 
Смежные вопросы