Xamarin.Forms RefreshView
Das RefreshView
ist ein Containersteuerelement, das Pull-To-Refresh-Funktionalität für scrollbare Inhalte bereitstellt. Daher muss das untergeordnete Element eines RefreshView
ein scrollbares Steuerelement sein, z ScrollView
. B. , CollectionView
oder ListView
.
RefreshView
definiert die folgenden Eigenschaften:
Command
, vom TypICommand
, der ausgeführt wird, wenn eine Aktualisierung ausgelöst wird.CommandParameter
vom Typobject
: der Parameter, der anCommand
übergeben wird.IsRefreshing
, vom Typbool
, der den aktuellen Zustand vonRefreshView
angibt.RefreshColor
, vom TypColor
, die Farbe des Statuskreises, der während der Aktualisierung angezeigt wird.
Diese Eigenschaften werden durch BindableProperty
-Objekte gestützt, was bedeutet, dass sie Ziele von Datenbindungen sein können, und geformt.
Hinweis
Auf kann Universal Windows Platformdie Pullrichtung eines RefreshView
mit einer plattformspezifischen festgelegt werden. Weitere Informationen finden Sie unter RefreshView Pull Direction.
Erstellen der Datei RefreshView
Das folgende Beispiel zeigt, wie ein RefreshView
in XAML instanziieren wird:
<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>
Ein RefreshView
kann auch im Code erstellt werden:
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;
In diesem Beispiel bietet die RefreshView
Pull-Funktion zum Aktualisieren von Funktionen für eine ScrollView
, deren untergeordnetes Element ein FlexLayout
ist. Der FlexLayout
verwendet ein bindungsfähiges Layout, um seinen Inhalt durch Bindung an eine Auflistung von Elementen zu generieren, und legt die Darstellung jedes Elements mit einem fest DataTemplate
. Weitere Informationen zu bindbaren Layouts finden Sie unter Bindable Layouts in Xamarin.Forms.
Der Wert der RefreshView.IsRefreshing
-Eigenschaft gibt den aktuellen Zustand von an RefreshView
. Wenn vom Benutzer eine Aktualisierung ausgelöst wird, wechselt diese Eigenschaft automatisch zu true
. Nach Abschluss der Aktualisierung sollten Sie die -Eigenschaft auf false
zurücksetzen.
Wenn der Benutzer eine Aktualisierung initiiert, wird die ICommand
von der Command
-Eigenschaft definierte ausgeführt, wodurch die angezeigten Elemente aktualisiert werden sollen. Während der Aktualisierung wird eine Aktualisierungsvisualisierung angezeigt, die aus einem animierten Fortschrittskreis besteht:
Hinweis
Durch manuelles Festlegen der IsRefreshing
Eigenschaft auf true
wird die Aktualisierungsvisualisierung ausgelöst und die von der Command
ICommand
-Eigenschaft definierte ausgeführt.
Darstellung der RefreshView
Zusätzlich zu den Eigenschaften, die RefreshView
von der VisualElement
-Klasse erbt, RefreshView
definiert auch die RefreshColor
-Eigenschaft. Diese Eigenschaft kann festgelegt werden, um die Farbe des Statuskreises zu definieren, der während der Aktualisierung angezeigt wird:
<RefreshView RefreshColor="Teal"
... />
Der folgende Screenshot zeigt eine RefreshView
mit dem RefreshColor
Eigenschaftensatz:
Darüber hinaus kann die BackgroundColor
-Eigenschaft auf eine Color
festgelegt werden, die die Hintergrundfarbe des Fortschrittskreises darstellt.
Hinweis
Unter iOS legt die BackgroundColor
-Eigenschaft die Hintergrundfarbe des fest, das UIView
den Statuskreis enthält.
Deaktivieren eines RefreshView
Eine Anwendung kann in einen Zustand versetzt werden, in dem pull to refresh kein gültiger Vorgang ist. In solchen Fällen kann das RefreshView
deaktiviert werden, indem die zugehörige IsEnabled
-Eigenschaft auf false
festgelegt wird. Dadurch wird verhindert, dass Benutzer pull to refresh auslösen können.
Alternativ kann beim Definieren der Command
-Eigenschaft der CanExecute
Delegat des ICommand
angegeben werden, um den Befehl zu aktivieren oder zu deaktivieren.