Xamarin.Forms RefreshView

Stáhnout ukázku Stažení ukázky

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, typu ICommand , který se spustí při aktivaci aktualizace.
  • CommandParameter, typu object , což je parametr, který se předává do Command .
  • IsRefreshing, typu bool , který označuje aktuální stav objektu RefreshView .
  • RefreshColor, typu Color , 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">Snímek obrazovkytří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 span <=RefreshView s kruhem průběhu v Screenshot of a <span class= 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 .