如何根据`Xamarin Forms中的项目数自动设置`ListView`高度?

时间:2017-05-06 10:41:43

标签: listview xamarin.ios xamarin.forms

ListView在屏幕上显示项目。我显示的项目数量不尽相同。所以我的问题是:如何根据项目数量自动设置ListView的高度?现在,我的ListView占据了我的屏幕一直到底部,如下图所示。

enter image description here

我希望它看起来像下面的图片(使用TableView):

enter image description here

PS:我正在开发一个PCL应用程序,但是打开它来创建渲染器。目前我只是在PCL和iOS方面工作,因此非常感谢iOS渲染器。

编辑:其他XAML代码:

<ListView x:Name="categoryGroupListView" ItemTapped="openCategoriesPage" HasUnevenRows="true">
    <ListView.Header>
        <StackLayout VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
            // Header code here
        </StackLayout>
    </ListView.Header>
    <ListView.ItemTemplate>
        <ListView.DataTemplate>
            <TextCell Text="{Binding CategoryName}" Detail="{Binding Count}"/>
        </ListView.DataTemplate>
    </ListView.ItemTemplate>
</ListView>

1 个答案:

答案 0 :(得分:0)

这是iOS中的默认设置。您可以使用自定义渲染器删除ListView(UITableView)中的额外单元格,并向页脚添加空视图。

类似的东西:

protected override void OnElementChanged(ElementChangedEventArgs<ListView> e)
{
    base.OnElementChanged(e);

    if (this.Control == null)
    {
        return;
    }

    this.Control.TableFooterView = new UIView();
}

这也可以直接在XAML中的ListView上使用footer属性

<ListView.Footer>
    <Label />
</ListView.Footer>

任一选项都会删除空单元格。

希望这会有所帮助.-