Xamarin.Forms 4.8 ile Gelen Yenilikler

Merhaba,

Xamarin.Forms ile gelen yenilikler heyecanlandirmaya ve ihtiyaclarimizi biraz daha kisa yollarla karsilamaya devam ediyor.

Eskiden pluginlerle karsiladigimiz mobil icin temel ihtiyaclardan biri olan gradient ve brushes artik Viewlarla birlikte kullanabiliyoruz. Radial ve Linear olarak iki kullanımı mevcut.

        <StackLayout.Background>
            <RadialGradientBrush Center="0.5,0.5"
                                 Radius="0.5">
                <GradientStop Color="Red"
                              Offset="0.1"/>
                <GradientStop Color="Black"
                              Offset="1.0"/>
            </RadialGradientBrush>
        </StackLayout.Background>
        <StackLayout.Background>
            <LinearGradientBrush StartPoint="0,0"
                                 EndPoint="1,0">
                <GradientStop Color="Red"
                              Offset="0.1"/>
                <GradientStop Color="Black"
                              Offset="1.0"/>
            </LinearGradientBrush>
        </StackLayout.Background>

Diger bir yenilik ise Drag&Drop. Drag&Drop olayini da bir gesture islemi olarak ele alacagiz.

DragGestureRecognizer classinini inceledigimizde ihtiyacimiz olan event ve commandlarin da kullanmamiz icin gelistirildigini goruyoruz.

    <StackLayout>
        <BoxView HeightRequest="100"
                 WidthRequest="100"
                 HorizontalOptions="Center">
            <BoxView.Background>
                <LinearGradientBrush StartPoint="0,0"
                                 EndPoint="1,0">
                    <GradientStop Color="Red"
                              Offset="0.1"/>
                    <GradientStop Color="Black"
                              Offset="1.0"/>
                </LinearGradientBrush>
            </BoxView.Background>
            <BoxView.GestureRecognizers>
                <DragGestureRecognizer CanDrag="True"
                                       DragStartingCommand="{Binding DragStartingCommand}"
                                       DropCompletedCommand="{Binding DropCompletedCommand}"/>
                <DropGestureRecognizer AllowDrop="True"
                                       DragOverCommand="{Binding DragOverCommand}"
                                       DropCommand="{Binding DropCommand}"/>
            </BoxView.GestureRecognizers>
        </BoxView>
        <Label Text="{Binding DragText}"/>
    </StackLayout>
    public class MainPageViewModel : INotifyPropertyChanged
    {
        public string _dragText;
        public string DragText
        {
            get
            {
                return _dragText;
            }
            set
            {
                _dragText = value;
                OnPropertyChanged();
            }
        }

        public ICommand DragStartingCommand => new Command((o) =>
        {
            DragText = "DragStartingCommand..";
        });
        public ICommand DropCompletedCommand => new Command((o) =>
        {
            DragText = "DropCompletedCommand..";
        });
        public ICommand DragOverCommand => new Command((o) =>
        {
            DragText = "DragOverCommand..";
        });
        public ICommand DropCommand => new Command((o) =>
        {
            DragText = "DropCommand..";
        });

        public event PropertyChangedEventHandler PropertyChanged;
        void OnPropertyChanged([CallerMemberName] string propName = "")
        {
            PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propName));
        }

        public MainPageViewModel()
        {
            DragText = "";
        }
    }
}

4.8 ile gelen son ozellik ise Shell.FlyoutBackdrop. Shell mimarisi ile uygulama gelistiriyorsak artik sol menu acildiktan sonra arkada kalan sayfa icin renklendirme yapabiliyoruz.

      <Shell.FlyoutBackdrop>
          <LinearGradientBrush StartPoint="0,0"
                               EndPoint="1,1">
              <GradientStop Color="#8A2387"
                            Offset="0.1" />
              <GradientStop Color="#E94057"
                            Offset="0.6" />
              <GradientStop Color="#F27121"
                            Offset="1.0" />
          </LinearGradientBrush>
      </Shell.FlyoutBackdrop>

Sizlerin de gordugu gibi son Xamarin.Forms guncellemelerinde gorsellik uzerine yogunlasiliyor. Sizler de orneklerden yola cikarak kullanimi kolay ve hizli bir sekilde uygulamalariniza bu ozellikleri ekleyebilirsiniz.

Kaynaklar;

Yiğit

Xamarin Developer, Consultant & Architect. Community Leader and Director of Xamarin Türkiye

Post A Reply