Чрезмерное пространство в ListView на Xamarin

Я использую Xamarin для реализации listView, который динамически заполняется списком объектов. Основная проблема заключается в том, что даже я использую статический список из 2 элементов (например), в представлении есть пустое пространство, принадлежащее listView. Неотъемлемый код следующий:

SfidePage.xaml

          <ListView
                Grid.Row="2"
                x:Name="sfideLanciate"
                HasUnevenRows="true"
                SeparatorVisibility="None"
                >
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>

                                    <Grid
                                BackgroundColor="{StaticResource OpzioniTitleBackgroundColor}"
                                Margin="0,1,0,0"
                                RowSpacing="0"
                                ColumnSpacing="10"
                                VerticalOptions="Start"
                                Padding="5"
                            >
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="2*"/>
                                            <ColumnDefinition Width="7*"/>
                                            <ColumnDefinition Width="1*"/>
                                        </Grid.ColumnDefinitions>

                                        <ci:CircleImage Source="avatar" Aspect="AspectFill" 
                                                HorizontalOptions="Center" VerticalOptions="Start" 
                                                HeightRequest="70" WidthRequest="70" 
                                                BorderColor="{StaticResource OpzioniLineDividerBackground}" BorderThickness="3" 
                                                Grid.Row="0"></ci:CircleImage>

                                        <Grid RowSpacing="0" ColumnSpacing="0" Grid.Column="1" Grid.Row="0">
                                            <Grid.RowDefinitions>
                                                <RowDefinition />
                                                <RowDefinition />
                                                <RowDefinition Height="Auto"/>
                                            </Grid.RowDefinitions>
                                            <Label Text="In attesa di Kyle Cain" FontSize="16" Grid.Row="0" TextColor="Black" FontAttributes="Bold"></Label>
                                            <Label Text="Ardeatina Roma 70" Grid.Row="1" TextColor="Black"></Label>
                                            <Label Text="10 DOMANDE - Argomento: Pannelli integrativi" Grid.Row="2" TextColor="{StaticResource LightGreyInfo}"></Label>
                                        </Grid>
                                        <Label Text="1h" Grid.Column="2" Grid.Row="0" TextColor="{StaticResource LightGreyInfo}" HorizontalTextAlignment="Center"></Label>
                                    </Grid>

                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>

SfidePage.xaml.cs

public partial class SfidePage : ContentPage
{
    public SfidePage ()
    {
        InitializeComponent ();

        sfideLanciate.ItemsSource = new List<int> { 1, 2 };

    }
}

Вывод следующий: https://i.imgur.com/jQ40JCr.png

«SFIDE COMPLETATE» — это макет стека после listView, поэтому пустое пространство является частью listView. Как я могу адаптировать высоту listView к его элементам?


person sergio zavota    schedule 14.08.2018    source источник


Ответы (2)


Это может быть связано со свойством заполнения, вы пытались его удалить? Кроме того, вы устанавливаете Margin-Top равным 1, это, вероятно, также может создать пространство.

person Neto Costa    schedule 21.08.2018

Вы устанавливаете для верхнего поля значение 1 в своем коде: Margin="0,1,0,0" измените его на Margin="0", и пробел должен исчезнуть...

person Dean Kuga    schedule 21.08.2018