├── .gitignore ├── FUNDING.yml ├── InfiniteCycleViewPager.Sample ├── Adapters │ ├── HorizontalPagerAdapter.cs │ ├── MainPagerAdapter.cs │ └── VerticalPagerAdapter.cs ├── Assets │ └── AboutAssets.txt ├── InfiniteCycleViewPager.Sample.csproj ├── MainActivity.cs ├── Properties │ ├── AndroidManifest.xml │ └── AssemblyInfo.cs ├── Resources │ ├── AboutResources.txt │ ├── Resource.designer.cs │ ├── drawable │ │ ├── bg_main.xml │ │ └── overlay_top.xml │ ├── layout │ │ ├── activity_main.xml │ │ ├── fragment_horizontal.xml │ │ ├── fragment_two_way.xml │ │ ├── fragment_vertical.xml │ │ ├── item.xml │ │ └── two_way_item.xml │ ├── mipmap-hdpi │ │ └── Icon.png │ ├── mipmap-mdpi │ │ └── Icon.png │ ├── mipmap-xhdpi │ │ └── Icon.png │ ├── mipmap-xxhdpi │ │ └── Icon.png │ ├── mipmap-xxxhdpi │ │ └── Icon.png │ └── values │ │ ├── attrs.xml │ │ ├── strings.xml │ │ └── styles.xml ├── Screens │ ├── HorizontalPagerFragment.cs │ ├── TwoWayPagerFragment.cs │ └── VerticalPagerFragment.cs ├── Utils │ ├── NonScrollableViewPager.cs │ ├── SquareFrameLayout.cs │ ├── TintSelectorImageView.cs │ └── Utils.cs └── packages.config ├── InfiniteCycleViewPager.sln ├── InfiniteCycleViewPager ├── Additions │ ├── AboutAdditions.txt │ ├── HorizontalInfiniteCycleViewPager.cs │ └── VerticalInfiniteCycleViewPager.cs ├── InfiniteCycleViewPager.csproj ├── Jars │ ├── AboutJars.txt │ └── infinitecycleviewpager-1.0.2.aar ├── Properties │ └── AssemblyInfo.cs ├── Transforms │ ├── EnumFields.xml │ ├── EnumMethods.xml │ └── Metadata.xml └── packages.config ├── LICENSE ├── README.md ├── icon_InfiniteCycleViewPager.png └── nuspec └── Xam.Plugins.Android.InfiniteCycleViewPager.nuspec /.gitignore: -------------------------------------------------------------------------------- 1 | #Autosave files 2 | *~ 3 | 4 | #build 5 | [Oo]bj/ 6 | [Bb]in/ 7 | packages/ 8 | TestResults/ 9 | 10 | # globs 11 | Makefile.in 12 | *.DS_Store 13 | *.sln.cache 14 | *.suo 15 | *.cache 16 | *.pidb 17 | *.userprefs 18 | *.usertasks 19 | config.log 20 | config.make 21 | config.status 22 | aclocal.m4 23 | install-sh 24 | autom4te.cache/ 25 | *.user 26 | *.tar.gz 27 | tarballs/ 28 | test-results/ 29 | Thumbs.db 30 | 31 | #Mac bundle stuff 32 | *.dmg 33 | *.app 34 | 35 | #resharper 36 | *_Resharper.* 37 | *.Resharper 38 | 39 | #dotCover 40 | *.dotCover 41 | -------------------------------------------------------------------------------- /FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: Baseflow 2 | custom: https://baseflow.com/contact 3 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Adapters/HorizontalPagerAdapter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Android.Content; 3 | using Android.Support.V4.View; 4 | using Android.Views; 5 | using Android.Widget; 6 | using Com.Gigamole.Infinitecycleviewpager; 7 | using InfiniteCycleViewPager.Sample.Utils; 8 | 9 | namespace InfiniteCycleViewPager.Sample.Adapters 10 | { 11 | public class HorizontalPagerAdapter : PagerAdapter 12 | { 13 | private Utils.LibraryObject[] LIBRARIES = new Utils.LibraryObject[]{ 14 | new Utils.LibraryObject( 15 | "https://github.com/DevLight-Mobile-Agency/NavigationTabBar", 16 | "https://lh4.googleusercontent.com/-mF70XCnMpgk/V1NnK34tnhI/AAAAAAAACkY/z0Z15Q_7gg4fMovWiEvo9agJgz7m933cQCL0B/w323-h552-no/btbntb.gif" 17 | ), 18 | new Utils.LibraryObject( 19 | "https://github.com/DevLight-Mobile-Agency/NavigationTabStrip", 20 | "https://lh6.googleusercontent.com/-wpGnxe1Vefc/VziiygaS9WI/AAAAAAAACd4/c4fU_EG-DHkoby1SIbI5BDtqITpGiZZhwCL0B/w326-h551-no/nts.gif" 21 | ), 22 | new Utils.LibraryObject( 23 | "https://github.com/DevLight-Mobile-Agency/ShadowLayout", 24 | "https://lh4.googleusercontent.com/-2JB-2cEv8lk/Vx4FmHQhjOI/AAAAAAAACTA/nrRGFjcQXBsGiISYSZ5k8gUsVcRw5GSRQCL0B/w349-h552-no/sl.png" 25 | ) 26 | }; 27 | 28 | private Utils.LibraryObject[] TWO_WAY_LIBRARIES = new Utils.LibraryObject[]{ 29 | new Utils.LibraryObject( 30 | "https://github.com/DevLight-Mobile-Agency/AnimateFilterCalendarGridLayout", 31 | new String[]{ 32 | "https://lh6.googleusercontent.com/-OMVt5Ow2tsE/VsbvbmJOouI/AAAAAAAACLs/aQoAzX5hGYw/w386-h551-no/afgl.gif", 33 | "https://lh4.googleusercontent.com/-dXoUnGjGLHE/VsbvbtehV3I/AAAAAAAACLs/EqYB6AA5fYI/w396-h552-no/acgl.gif" 34 | } 35 | ), 36 | new Utils.LibraryObject( 37 | "https://github.com/DevLight-Mobile-Agency/SlideImageView", 38 | new String[]{ 39 | "https://lh5.googleusercontent.com/-2BiBFz-OW_s/VU_EPv33XMI/AAAAAAAAAcc/nGie_kBoZQ8/w244-h368-no/siv.gif" 40 | } 41 | ), 42 | new Utils.LibraryObject( 43 | "https://github.com/DevLight-Mobile-Agency/MillSpinners", 44 | new String[]{ 45 | "https://lh3.googleusercontent.com/-xmtjZYfrZ3g/VR-7WR2tQ1I/AAAAAAAAAZs/YzLSSYPukYE/s0/multi_arc_spinner.gif", 46 | "https://lh5.googleusercontent.com/-PaQXf0zlY5E/VU00AZvffaI/AAAAAAAAAa4/VH36UhvzXl4/w153-h165-no/cws.gif", 47 | "https://lh4.googleusercontent.com/-ysG5WmZKG0w/VU00Ao5_MDI/AAAAAAAAAa0/bYf3v90XpcA/w144-h146-no/cs.gif", 48 | "https://lh5.googleusercontent.com/-X61M2jmXkTs/VU00AdyLk9I/AAAAAAAAAbI/4BKr42uJ4Vc/w170-h261-no/dls.gif", 49 | "https://lh5.googleusercontent.com/-b8PfdN9PoLw/VU00BPNG2cI/AAAAAAAAAbE/AXDZuOMEb5k/w175-h262-no/fs.gif" 50 | } 51 | ) 52 | }; 53 | 54 | private Context mContext; 55 | private LayoutInflater mLayoutInflater; 56 | 57 | private bool mIsTwoWay; 58 | 59 | public HorizontalPagerAdapter(Context context, bool isTwoWay) 60 | { 61 | mContext = context; 62 | mLayoutInflater = LayoutInflater.From(context); 63 | mIsTwoWay = isTwoWay; 64 | } 65 | 66 | public override int Count 67 | { 68 | get 69 | { 70 | return mIsTwoWay ? TWO_WAY_LIBRARIES.Length : LIBRARIES.Length; 71 | } 72 | } 73 | 74 | public override int GetItemPosition(Java.Lang.Object objectValue) 75 | { 76 | return PositionNone; 77 | } 78 | 79 | public override Java.Lang.Object InstantiateItem(ViewGroup container, int position) 80 | { 81 | View view; 82 | if (mIsTwoWay) 83 | { 84 | view = mLayoutInflater.Inflate(Resource.Layout.two_way_item, container, false); 85 | 86 | var verticalInfiniteCycleViewPager = view.FindViewById(Resource.Id.vicvp); 87 | verticalInfiniteCycleViewPager.Adapter = new VerticalPagerAdapter(mContext, TWO_WAY_LIBRARIES[position]); 88 | verticalInfiniteCycleViewPager.CurrentItem = 0; 89 | } 90 | else { 91 | view = mLayoutInflater.Inflate(Resource.Layout.item, container, false); 92 | AppUtils.SetupImage(mContext, view.FindViewById(Resource.Id.image), LIBRARIES[position]); 93 | } 94 | 95 | container.AddView(view); 96 | return view; 97 | } 98 | 99 | public override bool IsViewFromObject(View view, Java.Lang.Object objectValue) 100 | { 101 | return view.Equals(objectValue); 102 | } 103 | 104 | public override void DestroyItem(ViewGroup container, int position, Java.Lang.Object objectValue) 105 | { 106 | container.RemoveView((View)objectValue); 107 | } 108 | } 109 | } 110 | 111 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Adapters/MainPagerAdapter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Android.Support.V4.App; 3 | using InfiniteCycleViewPager.Sample.Screens; 4 | 5 | namespace InfiniteCycleViewPager.Sample.Adapters 6 | { 7 | public class MainPagerAdapter : FragmentStatePagerAdapter 8 | { 9 | private static int COUNT = 3; 10 | 11 | private const int HORIZONTAL = 0; 12 | private const int VERTICAL = 1; 13 | private const int TWO_WAY = 2; 14 | 15 | public MainPagerAdapter(FragmentManager fm) : base(fm) 16 | { 17 | } 18 | 19 | public override Fragment GetItem(int position) 20 | { 21 | switch (position) 22 | { 23 | case VERTICAL: 24 | return new VerticalPagerFragment(); 25 | case TWO_WAY: 26 | return new TwoWayPagerFragment(); 27 | case HORIZONTAL: 28 | default: 29 | return new HorizontalPagerFragment(); 30 | } 31 | } 32 | 33 | public override int Count 34 | { 35 | get 36 | { 37 | return COUNT; 38 | } 39 | } 40 | } 41 | } 42 | 43 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Adapters/VerticalPagerAdapter.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using Android.Content; 3 | using Android.Support.V4.View; 4 | using Android.Views; 5 | using Android.Widget; 6 | using InfiniteCycleViewPager.Sample.Utils; 7 | 8 | namespace InfiniteCycleViewPager.Sample.Adapters 9 | { 10 | public class VerticalPagerAdapter : PagerAdapter 11 | { 12 | private Utils.LibraryObject[] LIBRARIES = new Utils.LibraryObject[]{ 13 | new Utils.LibraryObject( 14 | "https://github.com/DevLight-Mobile-Agency/PulseView", 15 | "https://lh4.googleusercontent.com/-mqVBaXK0XM0/VyhroJmmU7I/AAAAAAAACUs/OmfzeRZsYNQhNAdgFmKvFIU5XDiJ3-z3wCL0B/w401-h689-no/pv.gif" 16 | ), 17 | new Utils.LibraryObject( 18 | "https://github.com/DevLight-Mobile-Agency/ArcProgressStackView", 19 | "https://lh3.googleusercontent.com/-5wahrBgdCTw/VuwHChXS3FI/AAAAAAAACNQ/eqpqhfnN5G0l3EnETDQ_I5qu4kqQYSysA/w327-h551-no/apsv_preview_size_cb.gif" 20 | ), 21 | new Utils.LibraryObject( 22 | "https://github.com/DevLight-Mobile-Agency/CutIntoLayout", 23 | "https://lh3.googleusercontent.com/fWz9orE3M8vaAuzkxHi0F2m23iuHUYlXmG-lgonEFCU=w210-h282-no" 24 | ), 25 | new Utils.LibraryObject( 26 | "https://github.com/DevLight-Mobile-Agency/TintLayout", 27 | "https://lh3.googleusercontent.com/zwCLyDjZMVM2O571j6gwReHbkAolr7DV3XyKy5hqTug=s308-no" 28 | ) 29 | }; 30 | 31 | private Context mContext; 32 | private LayoutInflater mLayoutInflater; 33 | 34 | private Utils.LibraryObject mLibraryObject; 35 | 36 | public VerticalPagerAdapter(Context context, Utils.LibraryObject libraryObject) 37 | { 38 | mContext = context; 39 | mLayoutInflater = LayoutInflater.From(context); 40 | mLibraryObject = libraryObject; 41 | } 42 | 43 | public override int Count 44 | { 45 | get 46 | { 47 | return mLibraryObject == null ? LIBRARIES.Length : mLibraryObject.getImages().Length; 48 | } 49 | } 50 | 51 | public override int GetItemPosition(Java.Lang.Object objectValue) 52 | { 53 | return PositionNone; 54 | } 55 | 56 | public override Java.Lang.Object InstantiateItem(ViewGroup container, int position) 57 | { 58 | View view = mLayoutInflater.Inflate(Resource.Layout.item, container, false); 59 | 60 | if (mLibraryObject == null) 61 | AppUtils.SetupImage(mContext, view.FindViewById(Resource.Id.image), LIBRARIES[position]); 62 | else 63 | AppUtils.SetupImage(mContext, view.FindViewById(Resource.Id.image), mLibraryObject, position); 64 | 65 | container.AddView(view); 66 | return view; 67 | } 68 | 69 | public override bool IsViewFromObject(View view, Java.Lang.Object objectValue) 70 | { 71 | return view.Equals(objectValue); 72 | } 73 | 74 | public override void DestroyItem(ViewGroup container, int position, Java.Lang.Object objectValue) 75 | { 76 | container.RemoveView((View)objectValue); 77 | } 78 | } 79 | } 80 | 81 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Assets/AboutAssets.txt: -------------------------------------------------------------------------------- 1 | Any raw assets you want to be deployed with your application can be placed in 2 | this directory (and child directories) and given a Build Action of "AndroidAsset". 3 | 4 | These files will be deployed with your package and will be accessible using Android's 5 | AssetManager, like this: 6 | 7 | public class ReadAsset : Activity 8 | { 9 | protected override void OnCreate (Bundle bundle) 10 | { 11 | base.OnCreate (bundle); 12 | 13 | InputStream input = Assets.Open ("my_asset.txt"); 14 | } 15 | } 16 | 17 | Additionally, some Android functions will automatically load asset files: 18 | 19 | Typeface tf = Typeface.CreateFromAsset (Context.Assets, "fonts/samplefont.ttf"); 20 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/InfiniteCycleViewPager.Sample.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Debug 5 | AnyCPU 6 | {0330C6EB-35D9-4DC9-B80F-E1D33EDAA04C} 7 | {EFBA0AD7-5A72-4C68-AF49-83D382785DCF};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 8 | Library 9 | InfiniteCycleViewPager.Sample 10 | InfiniteCycleViewPager.Sample 11 | v6.0 12 | True 13 | Resources\Resource.designer.cs 14 | Resource 15 | Properties\AndroidManifest.xml 16 | Resources 17 | Assets 18 | false 19 | 20 | 21 | true 22 | full 23 | false 24 | bin\Debug 25 | DEBUG; 26 | prompt 27 | 4 28 | false 29 | None 30 | arm64-v8a;armeabi;armeabi-v7a;x86 31 | 32 | 33 | true 34 | bin\Release 35 | prompt 36 | 4 37 | false 38 | false 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | ..\packages\Xamarin.Android.Support.v4.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v4.dll 47 | 48 | 49 | ..\packages\Xamarin.Android.Support.Vector.Drawable.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.Vector.Drawable.dll 50 | 51 | 52 | ..\packages\Xamarin.Android.Support.Animated.Vector.Drawable.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.Animated.Vector.Drawable.dll 53 | 54 | 55 | ..\packages\Xamarin.Android.Support.v7.AppCompat.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.AppCompat.dll 56 | 57 | 58 | ..\packages\Xamarin.Android.Support.v7.CardView.23.4.0.1\lib\MonoAndroid403\Xamarin.Android.Support.v7.CardView.dll 59 | 60 | 61 | ..\packages\Glide.Xamarin.3.7.0\lib\Glide.dll 62 | 63 | 64 | ..\packages\Xam.Plugins.Android.NavigationTabStrip.1.0.4\lib\MonoAndroid\NavigationTabStrip.dll 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | {FF7ECDD1-FD2B-4016-9813-07F656BE94CA} 117 | InfiniteCycleViewPager 118 | 119 | 120 | 121 | 122 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/MainActivity.cs: -------------------------------------------------------------------------------- 1 | using Android.App; 2 | using Android.Widget; 3 | using Android.OS; 4 | using Android.Support.V7.App; 5 | using Android.Support.V4.View; 6 | using InfiniteCycleViewPager.Sample.Adapters; 7 | using Com.Gigamole.Navigationtabstrip; 8 | 9 | namespace InfiniteCycleViewPager.Sample 10 | { 11 | [Activity(Label = "InfiniteCycleViewPager.Sample", MainLauncher = true, Icon = "@mipmap/icon", Theme="@style/AppTheme")] 12 | public class MainActivity : AppCompatActivity 13 | { 14 | protected override void OnCreate(Bundle savedInstanceState) 15 | { 16 | base.OnCreate(savedInstanceState); 17 | 18 | // Set our view from the "main" layout resource 19 | SetContentView(Resource.Layout.activity_main); 20 | 21 | var viewPager = FindViewById(Resource.Id.vp_main); 22 | viewPager.Adapter = new MainPagerAdapter(SupportFragmentManager); 23 | viewPager.OffscreenPageLimit = 2; 24 | 25 | var navigationTabStrip = FindViewById(Resource.Id.nts); 26 | navigationTabStrip.SetTitles("HORIZONTAL", "VERTICAL", "TWO-WAY"); 27 | navigationTabStrip.SetViewPager(viewPager); 28 | } 29 | } 30 | } 31 | 32 | 33 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Properties/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using Android.App; 4 | 5 | // Information about this assembly is defined by the following attributes. 6 | // Change them to the values specific to your project. 7 | 8 | [assembly: AssemblyTitle("InfiniteCycleViewPager.Sample")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("")] 13 | [assembly: AssemblyCopyright("martijnvandijk")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". 18 | // The form "{Major}.{Minor}.*" will automatically update the build and revision, 19 | // and "{Major}.{Minor}.{Build}.*" will update just the revision. 20 | 21 | [assembly: AssemblyVersion("1.0.0")] 22 | 23 | [assembly: Application(LargeHeap = true)] 24 | 25 | // The following attributes are used to specify the signing key for the assembly, 26 | // if desired. See the Mono documentation for more information about signing. 27 | 28 | //[assembly: AssemblyDelaySign(false)] 29 | //[assembly: AssemblyKeyFile("")] 30 | 31 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/AboutResources.txt: -------------------------------------------------------------------------------- 1 | Images, layout descriptions, binary blobs and string dictionaries can be included 2 | in your application as resource files. Various Android APIs are designed to 3 | operate on the resource IDs instead of dealing with images, strings or binary blobs 4 | directly. 5 | 6 | For example, a sample Android app that contains a user interface layout (main.axml), 7 | an internationalization string table (strings.xml) and some icons (drawable-XXX/icon.png) 8 | would keep its resources in the "Resources" directory of the application: 9 | 10 | Resources/ 11 | drawable/ 12 | icon.png 13 | 14 | layout/ 15 | main.axml 16 | 17 | values/ 18 | strings.xml 19 | 20 | In order to get the build system to recognize Android resources, set the build action to 21 | "AndroidResource". The native Android APIs do not operate directly with filenames, but 22 | instead operate on resource IDs. When you compile an Android application that uses resources, 23 | the build system will package the resources for distribution and generate a class called "R" 24 | (this is an Android convention) that contains the tokens for each one of the resources 25 | included. For example, for the above Resources layout, this is what the R class would expose: 26 | 27 | public class R { 28 | public class drawable { 29 | public const int icon = 0x123; 30 | } 31 | 32 | public class layout { 33 | public const int main = 0x456; 34 | } 35 | 36 | public class strings { 37 | public const int first_string = 0xabc; 38 | public const int second_string = 0xbcd; 39 | } 40 | } 41 | 42 | You would then use R.drawable.icon to reference the drawable/icon.png file, or R.layout.main 43 | to reference the layout/main.axml file, or R.strings.first_string to reference the first 44 | string in the dictionary file values/strings.xml. 45 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/drawable/bg_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 10 | 11 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/drawable/overlay_top.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 11 | 12 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 12 | 28 | 32 | 36 | 41 | 42 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/layout/fragment_horizontal.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 17 | 18 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/layout/fragment_two_way.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 22 | 23 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/layout/fragment_vertical.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 23 | 24 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/layout/item.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 14 | 21 | 22 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/layout/two_way_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 18 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/mipmap-hdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Baseflow/InfiniteCycleViewPagerXamarin/fc3f33494bf3e7626dad75bbdd39a6546fa6d9d9/InfiniteCycleViewPager.Sample/Resources/mipmap-hdpi/Icon.png -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/mipmap-mdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Baseflow/InfiniteCycleViewPagerXamarin/fc3f33494bf3e7626dad75bbdd39a6546fa6d9d9/InfiniteCycleViewPager.Sample/Resources/mipmap-mdpi/Icon.png -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/mipmap-xhdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Baseflow/InfiniteCycleViewPagerXamarin/fc3f33494bf3e7626dad75bbdd39a6546fa6d9d9/InfiniteCycleViewPager.Sample/Resources/mipmap-xhdpi/Icon.png -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/mipmap-xxhdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Baseflow/InfiniteCycleViewPagerXamarin/fc3f33494bf3e7626dad75bbdd39a6546fa6d9d9/InfiniteCycleViewPager.Sample/Resources/mipmap-xxhdpi/Icon.png -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/mipmap-xxxhdpi/Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Baseflow/InfiniteCycleViewPagerXamarin/fc3f33494bf3e7626dad75bbdd39a6546fa6d9d9/InfiniteCycleViewPager.Sample/Resources/mipmap-xxxhdpi/Icon.png -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/values/attrs.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | InfinityCycleViewPager 3 | 4 | -------------------------------------------------------------------------------- /InfiniteCycleViewPager.Sample/Resources/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 |