Xamarin.Forms RefreshView
je RefreshView ovládací prvek kontejneru, který poskytuje funkci pull pro aktualizaci posouvatelného obsahu. Podřízeným objektem musí RefreshView být posouvatelný ovládací prvek, například ScrollView , nebo CollectionViewListView .
RefreshView definuje následující vlastnosti:
Command, typuICommand, který se spustí při aktivaci aktualizace.CommandParameter, typuobject, což je parametr, který se předává doCommand.IsRefreshing, typubool, který označuje aktuální stav objektuRefreshView.RefreshColor, typuColor, barva kruhu průběhu, který se zobrazí během aktualizace.
Tyto vlastnosti jsou zálohovány objekty, což znamená, že mohou být cíle datových vazeb a BindableProperty mají styl.
Poznámka
Na Universal Windows Platform , směr vyžadování lze RefreshView nastavit s konkrétní platformou. Další informace naleznete v tématu RefreshView Pull Direction.
Vytvořte soubor RefreshView
Následující příklad ukazuje, jak vytvořit instanci v RefreshView jazyce 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>
Objekt RefreshView lze také vytvořit v kódu:
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;
V tomto příkladu poskytuje RefreshView příkaz pull pro aktualizaci funkce pro objekt , jehož ScrollView podřízeným objektem je FlexLayout . Používá FlexLayout vázání rozložení k vygenerování obsahu vytvořením vazby na kolekci položek a nastaví vzhled každé položky s DataTemplate . Další informace o rozloženích s možností vazby najdete v tématu Bindable Layouts in Xamarin.Forms .
Hodnota vlastnosti RefreshView.IsRefreshing označuje aktuální stav RefreshView objektu . Když uživatel aktivuje aktualizaci, tato vlastnost se automaticky přechází na true . Po dokončení aktualizace byste měli vlastnost resetovat na false .
Když uživatel zahájí aktualizaci, spustí se definice definovaná vlastností , která by ICommandCommand měla aktualizovat zobrazené položky. Během aktualizace se zobrazí vizualizace aktualizace, která se skládá z animovaného kruhu průběhu:
RefreshView refresh data" data-linktype="relative-path">
třídy Androidu" title=" aktualizace RefreshView dat" data-linktype="relative-path"/>
Poznámka
Ručním nastavením vlastnosti na se aktivuje vizualizace aktualizace a spustí se vlastnost IsRefreshingtrueICommand definovaná Command vlastností .
RefreshView Vzhled
Kromě vlastností, které RefreshView dědí z VisualElement třídy , definuje také vlastnost RefreshViewRefreshColor . Tuto vlastnost lze nastavit tak, aby definujte barvu kruhu průběhu, který se zobrazí během aktualizace:
<RefreshView RefreshColor="Teal"
... />
Následující snímek obrazovky ukazuje objekt RefreshView se RefreshColor nastavenou vlastností:
RefreshView with a teal progress circle" data-linktype="relative-path">Snímek obrazovky s třídou
RefreshView s kruhem průběhu v
iOSu a Androidu" title=" s kruhem RefreshView průběhu"data-linktype="relativní_cesta"/>
Kromě toho lze vlastnost nastavit na hodnotu BackgroundColor , která představuje barvu pozadí kruhu Color průběhu.
Poznámka
V iOSu vlastnost nastaví barvu pozadí objektu BackgroundColor , která obsahuje kruh UIView průběhu.
Zakázání RefreshView
Aplikace může vstoupit do stavu, kdy aktualizace přitažení není platná operace. V takových případech je RefreshView možné objekt zakázat nastavením jeho vlastnosti na IsEnabledfalse . Tím zabráníte uživatelům, aby mohli aktivovat aktualizaci při vyžádané aktualizaci.
Případně můžete při definování vlastnosti zadat delegát objektu , který povolí CommandCanExecute nebo zakáže příkaz ICommand .
Stažení ukázky