如何根据“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>
任一选项都将删除空单元格
希望这有帮助-