Aracılığıyla paylaş


Xamarin.Forms RefreshView

, RefreshView kaydırılabilir içerik için yenileme işlevselliği sağlayan bir kapsayıcı denetimidir. Bu nedenle, öğesinin RefreshView alt öğesi , CollectionViewveya ListViewgibi ScrollViewkaydırılabilir bir denetim olmalıdır.

RefreshView aşağıdaki özellikleri tanımlar:

  • Command, türünde ICommandbir yenileme tetiklendiğinde yürütülür.
  • CommandParameter, türündeki objectparametresine Commandgeçirilir.
  • IsRefreshing, türünün boolgeçerli durumunu RefreshViewgösterir.
  • RefreshColor, türünde Color, yenileme sırasında görüntülenen ilerleme çemberinin rengidir.

Bu özellikler nesneler tarafından BindableProperty desteklenir; bu da veri bağlamalarının hedefleri olabileceği ve stillendirilebileceği anlamına gelir.

Not

üzerinde Universal Windows Platform, bir RefreshView öğesinin çekme yönü platforma özgü olarak ayarlanabilir. Daha fazla bilgi için bkz RefreshView . Çekme Yönü.

RefreshView oluşturma

Aşağıdaki örnekte XAML'de örneği RefreshView oluşturma gösterilmektedir:

<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 Kodda da oluşturulabilir:

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;

Bu örnekte, RefreshView alt FlexLayoutöğesi bir olan bir ScrollView için yenileme işlevinin çekmesini sağlar. , FlexLayout bir öğe koleksiyonuna bağlayarak içeriğini oluşturmak için bağlanabilir bir düzen kullanır ve ile DataTemplateher öğenin görünümünü ayarlar. Bağlanabilir düzenler hakkında daha fazla bilgi için, bkz . içindeki Xamarin.FormsBağlanabilir Düzenler.

özelliğinin RefreshView.IsRefreshing değeri, geçerli durumunu RefreshViewgösterir. Kullanıcı tarafından bir yenileme tetiklendiğinde, bu özellik otomatik olarak öğesine truegeçiş yapacaktır. Yenileme tamamlandıktan sonra özelliğini olarak falsesıfırlamanız gerekir.

Kullanıcı bir yenileme başlattığında ICommand , özelliği tarafından Command tanımlanan yürütülür ve görüntülenen öğelerin yenilenmesi gerekir. Yenileme gerçekleşirken bir yenileme görselleştirmesi gösterilir ve bu görselleştirme animasyonlu bir ilerleme çemberi içerir:

RefreshView iOS ve Android'de yenilenen verilerin ekran görüntüsü

Not

özelliğini el ile olarak true ayarlamak IsRefreshing yenileme görselleştirmesini tetikler ve özelliği tarafından tanımlanan öğesini ICommandCommand yürütür.

RefreshView Görünüm

sınıfından devralan RefreshViewVisualElement özelliklere ek olarak özelliğini RefreshView de tanımlar RefreshColor . Bu özellik, yenileme sırasında görüntülenen ilerleme çemberinin rengini tanımlamak için ayarlanabilir:

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

Aşağıdaki ekran görüntüsünde, özellik kümesine sahip bir RefreshView gösterilmektedir RefreshColor :

RefreshView iOS ve Android'de bir teal ilerleme dairesini içeren bir ekran görüntüsü

Buna ek olarak, BackgroundColor özellik ilerleme dairesinin arka plan rengini temsil eden bir Color olarak ayarlanabilir.

Not

iOS'ta özelliği ilerleme BackgroundColor dairesini içeren öğesinin arka plan rengini UIView ayarlar.

Devre dışı bırakma RefreshView

Bir uygulama, yenilemek için çekmenin geçerli bir işlem olmadığı bir durum girebilir. Böyle durumlarda, RefreshView özelliği falseolarak ayarlanarak IsEnabled devre dışı bırakılabilir. Bu, kullanıcıların yenileme için çekmeyi tetikleyebilmesini engeller.

Alternatif olarak, özelliği tanımlarken Command , CanExecute komutunu etkinleştirmek veya devre dışı bırakmak için öğesinin temsilcisi ICommand belirtilebilir.