Paging indicator widgets that are compatible with the ViewPager
from the
AndroidX Library to improve discoverability of content.
For Material Design look at:
For a working implementation of this project see the sample
solution.
Include one of the widgets in your view. This should usually be placed
adjacent to the ViewPager
it represents.
<dk.ostebaronen.droid.viewpagerindicator.TitlePageIndicator
android:id="@+id/titles"
android:layout_height="wrap_content"
android:layout_width="match_parent" />
In your OnCreate
method (or OnCreateView
for a fragment), bind the
indicator to the ViewPager
.
//Set the pager with an adapter
var pager = FindViewById<ViewPager>(Resource.Id.pager);
pager.Adapter = new TestAdapter(SupportFragmentManager);
//Bind the title indicator to the adapter
var titleIndicator = FindViewById<TitlePageIndicator>(Resource.Id.titles);
titleIndicator.SetViewPager(pager);
(Optional) If you want to listen for a PageChange
event, you should use it
on the ViewPagerIndicator
, rather than setting an OnPageChangeListener
on the
ViewPager
, otherwise the ViewPagerIndicator
will not update.
//continued from above
titleIndicator.PageChange += MyPageChangeEventHandler;
There are three ways to style the look of the indicators.
Each indicator has a demo which creates the same look using each of these methods.
ViewPagerIndicator is an Android Library project, which you can reference in your Android Project.
This project depends on the ViewPager
class which is available in the
Android Support Library.
Copyright 2013 Tomasz Cielecki
Copyright 2012 Jake Wharton
Copyright 2011 Patrik Åkerfeldt
Copyright 2011 Francisco Figueiredo Jr.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.