The use of Viewpager requires the introduction of a jar package such as Android.support.v4.View.ViewPager, a compatible package provided by Google to solve the problem of the current version fragmentation. The main purpose is to solve the backward compatibility problem.
1. Load the displayed page card
Convert layout layouts to view objects
(1) Layoutinflater if= Getlayoutinflater (). from (this);
If.inflater (Resource,root);
(2) View.inflate (context,resource,root);
The first of these methods was used in the previous practice of fragment,
2, Configuration Adapter
(1) Pageradapter data source:list<view>
(2) Fragmentpageradapter data source list<fragment>
(3) Fragmentstatpageradapter data source list<fragmnet>
Viewpager, like the list of controls previously learned, is a collection that needs to set up a data source,
The first step is to create 3 view layout files, define the Viewpager control
View1.xml,
View2.xml,
View3.xml
<android.support.v4.view.ViewPager android:layout_width= "Wrap_content" android:layout_ Height= "wrap_content" android:id= "@+id/viewpager" android:layout_gravity= " Center "> </android.support.v4.view.ViewPager>
Part Two, initialize the View collection
PrivateList<view>viewlist;PrivateViewpager Viewpager; @Overrideprotected voidonCreate (Bundle savedinstancestate) {Super. OnCreate (savedinstancestate); Setcontentview (R.layout.activity_main); Viewlist=NewArraylist<view>(); Initview ();}Private voidInitview () {/*using the View object as the Viewpager data source*/Viewlist.add (View.inflate (Getbasecontext (), R.layout.view1,NULL)); Viewlist.add (View.inflate (Getbasecontext (), R.layout.view2,NULL)); Viewlist.add (View.inflate (Getbasecontext (), R.LAYOUT.VIEW3,NULL));}
Part III, customizing the pager adapter
Public classMypageradapterextendsPageradapter {PrivateList<view>viewlist; PublicMypageradapter (list<view> viewlist){ This. viewlist =viewlist; } //returns the number of page cards@Override Public intGetCount () {returnviewlist.size (); } //determines whether the current view object is from an object@Override Public Booleanisviewfromobject (view view, Object o) {returnView = =o; } //instantiate a single page card@Override PublicObject Instantiateitem (ViewGroup container,intposition) { //return Super.instantiateitem (container, position);Container.addview (viewlist.get (position)); returnViewlist.get (position); } //destroy a page card@Override Public voidDestroyitem (ViewGroup container,intposition, Object object) { //Super.destroyitem (container, Position, object);Container.removeview (viewlist.get (position)); }}
Fourth, set up a data source for Viewpager
New Mypageradapter (Viewlist,titlepager); = (Viewpager) Findviewbyid (R.id.viewpager); Viewpager.setadapter (mypageradapter);
The above four steps can already show the appearance of Viewpager. The Pageradapter class manages the View object, each time it instantiates three view, and when the page switches, it destroys the extra view and creates a new view.
Fifth step, create a title bar for Viewpager
This step requires adding Android.support.v4.view.PagerTabStrip to the Viewpager layout file
<android.support.v4.view.ViewPager android:layout_width= "Wrap_content" android:layout_ Height= "wrap_content" android:id= "@+id/viewpager" android:layout_gravity= " Center "> <android.support.v4.view.PagerTabStrip android:layout_width=" Wrap_content " android:layout_height= "Wrap_content" android:id= "@+id/titlepager" > </android.support.v4.view.PagerTabStrip> </android.support.v4.view.ViewPager>
And you need to initialize the header collection, define the header list in the adapter, and Pageradapter need to implement the following method.
// set the title of the Viewpager @Override public charsequence getpagetitle (int position) { / /return super.getpagetitle (position); return titlepager.get (position);
Above a viewpager with the title bar, then we can set some title properties to make the title look more beautiful
Pagertabstrip.setbackgroundcolor (Color.yellow); Pagertabstrip.settextcolor (color.red); Pagertabstrip.setdrawfullunderline (false); Pagertabstrip.settabindicatorcolor (color.green);
The last point to note is that you can add listener event Onpagechangelistener for Viewpager.
Simple use of Android learning Viewpager