Xamarin.Forms RefreshView

Örneği İndir Örneği indirme

RefreshView, kaydırılabilir içerik için yenilemeye çekme işlevi sağlayan bir kapsayıcı denetimidir. Bu nedenle, bir RefreshView alt, , veya gibi kaydırılabilir bir ScrollView denetim olması CollectionViewListView gerekir.

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

  • Command, ICommand türündedir ve yenileme tetiklendiğinde yürütülür.
  • CommandParameter, object türüne geçirilen Command parametresidir.
  • IsRefreshing, türünün bool geçerli durumunu RefreshView gösterir.
  • RefreshColor, Color türü, yenileme sırasında görüntülenen ilerleme dairesinin rengi.

Bu özellikler nesnelerle BindableProperty desteklene, bu da veri bağlamalarının hedefi ve stile sahip olması anlamına gelir.

Not

üzerinde, Universal Windows Platform bir'in çekme RefreshView yönü platforma özgü bir şekilde ayarlanabilirsiniz. Daha fazla bilgi için bkz. RefreshView Pull Direction.

RefreshView oluşturma

Aşağıdaki örnekte, XAML'de bir örneği RefreshView nasıl örneklendiril olduğu gösterir:

<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>

Kodda RefreshView da bir 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, alt RefreshView adı olan bir için yenilemek için çekme işlevi ScrollViewFlexLayout sağlar. , bir öğe koleksiyonuna bağlanarak içeriğini oluşturmak için bağlanabilir bir düzen kullanır ve her FlexLayout öğenin görünümünü bir ile DataTemplate ayarlar. Bağlanabilir düzenler hakkında daha fazla bilgi için bkz. Bindable Layouts in Xamarin.Forms .

özelliğinin RefreshView.IsRefreshing değeri geçerli durumunu RefreshView gösterir. Kullanıcı tarafından bir yenileme tetiklendiğinde, bu özellik otomatik olarak 'ye geçiş true yapılır. Yenileme tamamlandıktan sonra özelliğini olarak sıfırlamanız false gerekir.

Kullanıcı bir yenileme başlattığında, özelliği tarafından tanımlanan yürütülür ve ICommandCommand görüntülenen öğeleri yenilemesi gerekir. Yenileme gerçekleşirken bir yenileme görselleştirmesi gösterilir ve bu da animasyonlu bir ilerleme durumu dairesini içerir:

RefreshView verileri yenileme" data-linktype="relative-path">iOS ve Android'de verileri yenilemeyi yenileme= Screenshot of a <span class= title=" RefreshView data-linktype="relative-path"/>

Not

özelliğinin el ile olarak ayarlandığı zaman yenileme görselleştirmesi IsRefreshingtrue tetiklenir ve özelliği ICommand tarafından tanımlanan Command yürütülür.

RefreshView Görünüm

sınıfından devralan RefreshView özelliklere ek VisualElementRefreshView olarak, özelliğini RefreshColor de tanımlar. Bu özellik, yenileme sırasında görünen ilerleme dairesinin rengini tanımlamak için ayarlanmış olabilir:

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

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

RefreshView with a teal progress circle" data-linktype="relative-path">Screenshot of a <span class=RefreshView with a teal progress circle, on Screenshot of a <span class= iOS and Android" title=" with a teal progress RefreshView circle" data-linktype="relative-path"/>

Ayrıca özelliği, BackgroundColor ilerleme dairesinin arka plan Color rengini temsil eden bir değerine de ayarlanmış olabilir.

Not

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

Devre dışı bırakma RefreshView

Uygulama, yenilemeye çekmenin geçerli bir işlem olmadığını bir durum girebilirsiniz. Böyle durumlarda, özelliği RefreshView olarak ayar tarafından devre dışı IsEnabledfalse bırakılabilir. Bu, kullanıcıların yenilemeye çekme tetiklemesini önler.

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