如何根据“Xamarin表单”中的项目数自动设置“ListView”高度?

如何根据“Xamarin表单”中的项目数自动设置“ListView”高度?,listview,xamarin.ios,xamarin.forms,Listview,Xamarin.ios,Xamarin.forms,我将ListView显示屏幕上的项目。我显示的项目数量不同。所以我的问题是:如何根据项目的数量自动设置我的列表视图的高度?现在我的ListView一直占据着屏幕的底部,如下图所示 我希望它看起来像下图(它使用了表格视图): PS:我正在开发一个PCL应用程序,但可以创建渲染器。目前我只是在PCL和iOS端工作,所以iOS渲染器非常受欢迎 编辑:附加XAML代码: <ListView x:Name="categoryGroupListView" ItemTapped="openCateg

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

我希望它看起来像下图(它使用了
表格视图
):

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>

//标题代码在这里

如果要根据行中的项目设置可变高度的行,则必须在listview中使用属性(hasRows=“true”)。 范例-


//..............                                                

如果要根据行中的项目设置可变高度的行,则必须在listview中使用属性(hasRows=“true”)。 范例-


//..............                                                

您可以查看Xamarin的网站。它有一些
列表视图
,模仿
表视图
的外观。它使用自定义类,例如
非CrollableListView
CardView

您可以查看Xamarin的相关内容。它有一些
列表视图
,模仿
表视图
的外观。它使用自定义类,例如
非滚动列表视图
卡片视图

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

比如:

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

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

    this.Control.TableFooterView = new UIView();
}
protected override void OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(this.Control==null)
{
返回;
}
this.Control.TableFooterView=新UIView();
}
这也可以直接在XAML中的ListView上使用footer属性

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

任一选项都将删除空单元格


希望这有帮助。-

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

比如:

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

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

    this.Control.TableFooterView = new UIView();
}
protected override void OnElementChanged(ElementChangedEventArgs e)
{
基础。一个要素发生变化(e);
if(this.Control==null)
{
返回;
}
this.Control.TableFooterView=新UIView();
}
这也可以直接在XAML中的ListView上使用footer属性

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

任一选项都将删除空单元格

希望这有帮助-