Simple use of Android learning Viewpager

Source: Internet
Author: User

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

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.