Xamarin.Forms RefreshView

下载示例 下载示例

RefreshView是一个容器控件,它为可滚动的内容提供拉取刷新功能。 因此,的子级 RefreshView 必须是可滚动控件,例如 ScrollViewCollectionViewListView

RefreshView 定义以下属性:

  • Command,类型 ICommand为 ,在触发刷新时执行。
  • CommandParameter,属于 object 类型,是传递给 Command 的参数。
  • IsRefreshing,类型 bool为 ,指示 的 RefreshView当前状态。
  • RefreshColor,类型 Color为 ,刷新期间显示的进度圆圈的颜色。

这些属性由 BindableProperty 对象提供支持;也就是说,它们可以作为数据绑定的目标,并能进行样式设置。

注意

在 上 Universal Windows Platform,可以使用特定于平台的 来设置 的 RefreshView 拉取方向。 有关详细信息,请参阅 RefreshView 拉取方向

创建 RefreshView

以下示例演示如何在 XAML 中实例化 :RefreshView

<RefreshView IsRefreshing="{Binding IsRefreshing}"
             Command="{Binding RefreshCommand}">
    <ScrollView>
        <FlexLayout Direction="Row"
                    Wrap="Wrap"
                    AlignItems="Center"
                    AlignContent="Center"
                    BindableLayout.ItemsSource="{Binding Items}"
                    BindableLayout.ItemTemplate="{StaticResource ColorItemTemplate}" />
    </ScrollView>
</RefreshView>

RefreshView也可以在代码中创建 :

RefreshView refreshView = new RefreshView();
ICommand refreshCommand = new Command(() =>
{
    // IsRefreshing is true
    // Refresh data here
    refreshView.IsRefreshing = false;
});
refreshView.Command = refreshCommand;

ScrollView scrollView = new ScrollView();
FlexLayout flexLayout = new FlexLayout { ... };
scrollView.Content = flexLayout;
refreshView.Content = scrollView;

在此示例中, RefreshView 向其子FlexLayout为 的 提供拉取以刷新功能ScrollView。 使用 FlexLayout 可绑定布局通过绑定到项集合来生成其内容,并使用 设置每个项 DataTemplate的外观。 有关可绑定布局的详细信息,请参阅 中的Xamarin.Forms可绑定布局

属性的值 RefreshView.IsRefreshing 指示 的 RefreshView当前状态。 当用户触发刷新时,此属性将自动转换为 true。 刷新完成后,应将 属性重置为 false

当用户启动刷新时, ICommand 将执行 由 Command 属性定义的 ,这将刷新正在显示的项目。 刷新时会显示刷新可视化效果,其中包含一个动画进度圆圈:

iOS 和 Android 上刷新数据的屏幕截图 RefreshView

注意

手动将 IsRefreshing 属性设置为 true 将触发刷新可视化效果,并执行 ICommandCommand 属性定义的 。

RefreshView 外观

除了继承自 VisualElement 类的属性RefreshView外,RefreshView还定义 RefreshColor 属性。 此属性可以设置为定义刷新期间显示的进度圆圈的颜色:

<RefreshView RefreshColor="Teal"
             ... />

以下屏幕截图显示了 设置了 RefreshView 属性的 RefreshColor

的RefreshView屏幕截图:iOS 和 Android的 屏幕截图

此外, BackgroundColor 可以将 属性设置为表示 Color 进度圆的背景色的 。

注意

在 iOS 上, BackgroundColor 属性设置包含进度圆圈 UIView 的背景色。

禁用 RefreshView

应用程序可能进入刷新拉取不是有效操作的状态。 在这种情况下,可以通过将 RefreshViewIsEnabled 属性设置为 false 来对其进行禁用。 这将阻止用户触发拉取刷新。

或者,在定义 Command 属性时, CanExecute 可以指定 的 ICommand 委托来启用或禁用命令。