1, add Android Support package
since the above classes are available in the Android support package, we add the package first.
In Eclipse->window->android SDK Manager, select the Extras->android Support Library in the list to install. After downloading in the Android-sdk\extras\android\support directory, here we choose the V4 version, into the V4 directory, copy android-support-v4.jar files to the Project Libs directory (if not new) can , compile-time ADT will automatically import it into the project.
2, the new Viewpager layout, the contents are as follows
<?xml version= "1.0" encoding= "Utf-8"?> <linearlayout xmlns:android=
"http://schemas.android.com/apk/" Res/android "
android:layout_width=" match_parent "
android:layout_height=" match_parent "
android:o" rientation= "vertical" >
<android.support.v4.view.viewpager
android:id= "@+id/viewpager"
Android:layout_width= "Wrap_content"
android:layout_height= "wrap_content"
android:layout_gravity= " Center ">
<android.support.v4.view.pagertabstrip
android:layout_width=" Wrap_content
" android:layout_height= "Wrap_content"
android:layout_gravity= "top"/>
</ Android.support.v4.view.viewpager>
</LinearLayout>
Viewpager is used to manage layout and can slide around to display the data of each page, Pagertabstrip used to display the page title,android:layout_gravity= "top" to say title at the head, can be set bottom, etc.
3. New Fragmentactivity page
the fragmentactivity page contains viewpager elements that can be used to display fragment, as defined below:
public class Viewpagerdemo extends fragmentactivity {/** page List **/list<fragment> fragmentlist = new Arrayli
St<fragment> ();
/** page Title List **/list<string> titlelist = new arraylist<string> ();
@Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate);
Setcontentview (R.layout.view_pager_demo);
Viewpager VP = (viewpager) Findviewbyid (R.id.viewpager);
Fragmentlist.add (New ViewPagerFragment1 ("Page 1"));
Fragmentlist.add (New ViewPagerFragment1 ("Page 2"));
Fragmentlist.add (New ViewPagerFragment1 ("Page 3"));
Titlelist.add ("Title 1");
Titlelist.add ("Title 2");
Titlelist.add ("Title 3");
Vp.setadapter (New Mypageradapter (Getsupportfragmentmanager (), Fragmentlist, titlelist)); /** * Definition Adapter/class Mypageradapter extends Fragmentpageradapter {private list<fragment> Fragment
List;
Private list<string> titlelist; Public Mypageradapter (FragmenTmanager FM, list<fragment> fragmentlist, list<string> titlelist) {super (FM);
This.fragmentlist = fragmentlist;
This.titlelist = titlelist; /** * Get each page * * * @Override public Fragment getitem (int arg0) {return (fragmentlist = null || Fragmentlist.size () = = 0)?
Null:fragmentList.get (arg0); /** * Title of each page * * @Override public charsequence getpagetitle (int position) {return (titl Elist.size () > Position)?
Titlelist.get (position): ""; /** * Total number of pages * * @Override public int GetCount () {return fragmentlist = null? 0:fragmen
Tlist.size ();
}
}
}
The Mypageradapter is integrated from Ragmentpageradapter to provide a data source for Viewpager.
The OnCreate function obtains the Viewpager instance and sets the data source, Getsupportfragmentmanager represents the fragment manager. ViewPagerFragment1 represents the specific page, see below for a description.
4. New Fragment page
The Fragment page is the page that needs to be displayed, the new class integrates fragment, and the Oncreateview function can be rewritten. The Oncreateview function corresponds to the OnCreate function of the activity. As follows:
public class ViewPagerFragment1 extends Fragment {
private String text;
Private TextView TV = null;
Public ViewPagerFragment1 (String text) {
super ();
This.text = text;
/**
* Overwrite this function, first get View last return
/@Override public
view Oncreateview via Inflater inflate function ( Layoutinflater inflater, ViewGroup container, Bundle savedinstancestate) {
View v = inflater.inflate (r.layout.view _pager_fragment_demo1, container, false);
TV = (TextView) V.findviewbyid (r.id.viewpagertext);
Tv.settext (text);
Return v.
}
}
5. Sample Engineering Code:
Package Cn.trinea.android.demo;
Import java.util.ArrayList;
Import java.util.List;
Import Android.os.Bundle;
Import android.support.v4.app.Fragment;
Import Android.support.v4.app.FragmentManager;
Import Android.support.v4.app.FragmentPagerAdapter;
Import Android.support.v4.view.ViewPager;
public class Viewpagerdemo extends basefragmentactivity {private static int total_count = 3; @Override protected void OnCreate (Bundle savedinstancestate) {super.oncreate (savedinstancestate, R.layout.view_page
R_demo);
Viewpager VP = (viewpager) Findviewbyid (R.id.view_pager);
list<fragment> fragmentlist = new arraylist<fragment> ();
list<string> titlelist = new arraylist<string> ();
for (int i = 0; i < Total_count i++) {viewpagerfragment viewPagerFragment1 = new Viewpagerfragment ();
Bundle Bundle = new Bundle ();
Bundle.putint ("Upimageid", 0);
Bundle.putstring ("text", "Page" + i); Viewpagerfragment1.setarguments (bUndle);
Titlelist.add ("title" + i);
Fragmentlist.add (VIEWPAGERFRAGMENT1);
} vp.setadapter (New Mypageradapter (Getsupportfragmentmanager (), Fragmentlist, titlelist));
Class Mypageradapter extends Fragmentpageradapter {private list<fragment> fragmentlist;
Private list<string> titlelist; Public Mypageradapter (Fragmentmanager FM, list<fragment> fragmentlist, list<string> titleList) {super (F
m);
This.fragmentlist = fragmentlist;
This.titlelist = titlelist; @Override public Fragment getitem (int arg0) {return (Fragmentlist = = NULL | | fragmentlist.size () = 0)?
Null:fragmentList.get (arg0); @Override public charsequence getpagetitle (int position) {return (titlelist.size () > position)? titl
Elist.get (position): "";
@Override public int GetCount () {return fragmentlist = = null 0:fragmentlist.size ();
}
}
}
The simple effect is as follows: