在Xamarin表单列表视图中添加页脚视图的最佳方法?

时间:2014-10-28 20:58:49

标签: android listview xamarin xamarin.forms

我注意到Xamarin表单ListView没有类似于Android中的addFooterView的方法。

我想在列表底部添加一个提交按钮。

实现这一目标的最佳途径是什么?

2 个答案:

答案 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>