Xamarin.Forms RefreshView
RefreshView
是一个容器控件,它为可滚动的内容提供拉取刷新功能。 因此,的子级 RefreshView
必须是可滚动控件,例如 ScrollView
、 CollectionView
或 ListView
。
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
属性定义的 ,这将刷新正在显示的项目。 刷新时会显示刷新可视化效果,其中包含一个动画进度圆圈:
注意
手动将 IsRefreshing
属性设置为 true
将触发刷新可视化效果,并执行 ICommand
由 Command
属性定义的 。
RefreshView 外观
除了继承自 VisualElement
类的属性RefreshView
外,RefreshView
还定义 RefreshColor
属性。 此属性可以设置为定义刷新期间显示的进度圆圈的颜色:
<RefreshView RefreshColor="Teal"
... />
以下屏幕截图显示了 设置了 RefreshView
属性的 RefreshColor
:
此外, BackgroundColor
可以将 属性设置为表示 Color
进度圆的背景色的 。
注意
在 iOS 上, BackgroundColor
属性设置包含进度圆圈 UIView
的背景色。
禁用 RefreshView
应用程序可能进入刷新拉取不是有效操作的状态。 在这种情况下,可以通过将 RefreshView
的 IsEnabled
属性设置为 false
来对其进行禁用。 这将阻止用户触发拉取刷新。
或者,在定义 Command
属性时, CanExecute
可以指定 的 ICommand
委托来启用或禁用命令。