Xamarin上ListView中的空间过多

时间:2018-08-14 14:35:07

标签: c# xamarin xamarin.forms xamarin.forms.listview

我正在使用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的高度适应其元素?

2 个答案:

答案 0 :(得分:0)

它可能与padding属性有关,您是否尝试将其删除? 另外,将Margin-Top设置为1,也可能会创建空间。

答案 1 :(得分:0)

您将代码中的上边距设置为1:Margin="0,1,0,0"更改为Margin="0",空格应该消失了。