Xamarin.Forms RefreshView

Download Sample Скачайте пример

Это RefreshView элемент управления контейнером, предоставляющий возможность обновления функциональных возможностей для прокручиваемого содержимого. Таким образом, дочерний элемент RefreshView должен быть прокручиваемым элементом управления, например ScrollView, CollectionViewили ListView.

RefreshView определяет следующие свойства:

  • Commandтип ICommand, который выполняется при активации обновления.
  • CommandParameter с типом object, который передается как параметр в Command.
  • IsRefreshing, тип bool, указывающий текущее состояние RefreshViewобъекта .
  • RefreshColor(тип Color) — цвет круга хода выполнения, который отображается во время обновления.

Эти свойства поддерживаются объектами BindableProperty, то есть эти свойства можно указывать в качестве целевых для привязки и стилизации данных.

Примечание.

Universal Windows PlatformВ поле "Направление извлечения" RefreshView можно задать с помощью конкретной платформы. Дополнительные сведения см. в разделе RefreshView "Направление извлечения".

Создание класса RefreshView

В следующем примере показано, как создать экземпляр в RefreshView XAML:

<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 предоставляется возможность обновления функциональных возможностей, ScrollView дочерний объект которого является дочерним элементом FlexLayout. Использует FlexLayout привязываемый макет для создания содержимого путем привязки к коллекции элементов и задает внешний вид каждого элемента с DataTemplateпомощью . Дополнительные сведения о привязываемых макетах см. в разделе "Привязываемые макеты".Xamarin.Forms

Значение RefreshView.IsRefreshing свойства указывает текущее состояние RefreshViewобъекта. Когда обновление активируется пользователем, это свойство автоматически переходит в true. После завершения обновления необходимо сбросить свойство falseв значение .

Когда пользователь инициирует обновление, выполняется определенное Command свойством, ICommand которое должно обновить отображаемые элементы. Визуализация обновления отображается во время обновления, которая состоит из анимированного круга выполнения:

Screenshot of a RefreshView refreshing data, on iOS and Android

Примечание.

Вручную присвойт IsRefreshing свойству активацию true визуализации обновления и будет выполняться определенное ICommand свойством Command .

Внешний вид RefreshView

Помимо свойств, наследующих RefreshView от VisualElement класса, RefreshView также определяет RefreshColor свойство. Это свойство можно задать для определения цвета круга хода выполнения, который отображается во время обновления:

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

На следующем снимка экрана показан RefreshViewRefreshColor набор свойств:

Screenshot of a RefreshView with a teal progress circle, on iOS and Android

Кроме того, BackgroundColor для свойства можно задать Color значение, представляющее цвет фона круга хода выполнения.

Примечание.

В iOS BackgroundColor свойство задает цвет фона UIView , содержащий круг хода выполнения.

Отключение RefreshView

Приложение может ввести состояние, в котором вытягивание для обновления не является допустимой операцией. В таких случаях RefreshView можно отключить, задав свойству IsEnabled значение false. Это приведет к тому, что пользователи смогут активировать вытягивание для обновления.

Кроме того, CanExecute при определении Command свойства делегат можно указать для ICommand включения или отключения команды.