我注意到Xamarin表单ListView没有类似于Android中的addFooterView的方法。
我想在列表底部添加一个提交按钮。
实现这一目标的最佳途径是什么?
答案 0 :(得分:1)
您可以为 Xamarin.Forms ListView 编写自己的自定义渲染器,并添加公开 addFooterView <的功能/ strong>在 Android 或许?
这是在 Android 平台上特别扩展对此支持的最简单方法。
更新1
要实现适用于所有平台的功能,您可以根据它所代表的数据自定义单元格外观。
在 Xamarin.Forms 中,您可以编写自己的自定义 Cell 实现,可以在 ListView 或 TableView中使用强>
因此,要在 ListView 的底部实现“加载更多”效果,您可以在收藏中添加额外的模型项,有一些标志表示是要显示的这种类型的显示,而不是真正的模型项目的正常单元表示。
评估此标记,您可以确定是否应显示“加载更多”自定义视图。
当您要添加更多数据时,您自然会删除此项目,之前添加新项目,然后再添加此特殊情况 模型项目之后。
答案 1 :(得分:0)
你可以像Pete描述的那样或以非ListView相关的方式来实现。如果我必须实现一个固定的页脚,我会将ListView和StackLayout放入一个有两行的网格中。 ListView的行具有*星号高度,而StackLayout具有自动调整大小的高度。
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<ListView Grid.Row="0">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<StackLayout Grid.Row="1">
<Label Text="Your fixed footer"/>
</StackLayout>
</Grid>
<强>更新强> 如果你需要ListView底部的可自定义单元格,那么你可以简单地使用ListView的Footer属性。
<ListView ItemsSource="{Binding Items}" HasUnevenRows="true">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="Some Titles"/>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.Footer>
<StackLayout>
<Label Text="Footer of the ListView"/>
</StackLayout>
</ListView.Footer>
</ListView>