Xamarin.Forms RefreshView
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,ICommandtüründedir ve yenileme tetiklendiğinde yürütülür.CommandParameter,objecttürüne geçirilenCommandparametresidir.IsRefreshing, türününboolgeçerli durumunuRefreshViewgösterir.RefreshColor,Colortü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=
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
RefreshView with a teal progress circle, on
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.
Örneği indirme