Skip to content

huybuidac/ViewPagerForms

Repository files navigation

Description

  • A stable crossplatform ViewPager for iOS/Android
  • There is no memory leak
  • Easy to use.

Setup

iOS

  • Add statement below to AppDelegate
        public override bool FinishedLaunching(UIApplication app, NSDictionary options)
        {
            global::Xamarin.Forms.Forms.Init();
            ViewPagerRenderer.Init(true);
...
        }

Android

  • Add statement below to MainActivity
        protected override void OnCreate(Bundle bundle)
        {
...
            global::Xamarin.Forms.Forms.Init(this, bundle);
            ViewPagerRenderer.Init(true);
...
        }

XAML:

First add the xmlns namespace:

xmlns:cv="clr-namespace:ViewPagerForms.Forms;assembly=ViewPagerForms.Forms"

Then add the xaml:

<cv:ViewPagerControl x:Name="viewpager" VerticalOptions="FillAndExpand" Position="{Binding Position, Mode=TwoWay}" ItemsSource="{Binding ListItems}" Infinite="false">
    <cv:ViewPagerControl.ItemTemplate>
        <DataTemplate>
            <StackLayout BackgroundColor="Olive" Padding="10">
                <StackLayout BackgroundColor="Red" VerticalOptions="FillAndExpand">
                    <Label Text="{Binding .}" FontSize="30" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" TextColor="Yellow"/>
                </StackLayout>
            </StackLayout>
        </DataTemplate>
    </cv:ViewPagerControl.ItemTemplate>
</cv:ViewPagerControl>

Code Behind:

    public class ViewModel
    {
        public ObservableCollection<int> ListItems { get; set; }
        public int Position { get; set; }

        public ViewModel()
        {
            ListItems = new ObservableCollection<int>() { 1, 2, 3, 4, 5, 6, 9 };
            Position = 5;
        }
    }

(https://www.youtube.com/watch?v=Liftcv-N_zo)

About

ViewPagerForms

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages