Today I wrote a sample code that uses the Actionbar class to implement the top label switching feature. If it is shown.
650) this.width=650; "src=" Http://s3.51cto.com/wyfs02/M00/43/79/wKioL1PbOnvTIWiZAACPg7me6ZI290.jpg "title=" QQ picture 20140801144803.jpg "alt=" Wkiol1pbonvtiwizaacpg7me6zi290.jpg "/>
With the latest ADT tools, the project will be created with a Android-support-v7-appcompat class library project,
This libproject has the actionbar that we want to use, which can be adapted to the 2.1 Android system.
Nonsense not much to say, directly on the code.
1, modify Activity_main.xml, increase viewpager.
<android.support.v4.view.viewpager xmlns:android= "http://schemas.android.com/apk/res/android" xmlns:tools= " Http://schemas.android.com/tools "android:id=" @+id/pager "android:layout_width=" Match_parent "Android:layout_heig ht= "Match_parent"/>
2, modify the code in the mainactivity, let it inherit actionbaractivity
public class Mainactivity extends Actionbaractivity implements Tablistener {
3. Create Tabspageradapter Inheritance Fragmentpageradapter
package com.example.tabswithswie.adatper;import android.support.v4.app.fragment;import android.support.v4.app.fragmentmanager;import android.support.v4.app.fragmentpageradapter;import com.example.tabswithswie.fragments.appfragment;import com.example.tabswithswie.fragments.gamesfragment; import com.example.tabswithswie.fragments.moviesfragment;public class tabspageradapter Extends fragmentpageradapter { public tabspageradapter (FragmentManager &NBSP;FM) { super (FM); // TODO Auto-generated constructor stub } @Override public fragment getitem (int index) { switch (Index) { case 0: &nbSp; return new appfragment (); case 1: return new gamesfragment (); case 2: return new moviesfragment (); } return null; } @Override public int getcount () { // TODO auto-generated method stub return 3; }}
4. Create Appfragment inheritance Android.support.v4.app.Fragment
Package Com.example.tabswithswie.fragments;import Com.example.tabswithswie.r;import Android.os.bundle;import Android.support.v4.app.fragment;import Android.view.layoutinflater;import Android.view.view;import Android.view.viewgroup;public class Appfragment extends Fragment {@Override public view Oncreateview (LAYOUTINFL Ater inflater, ViewGroup container, Bundle savedinstancestate) {//TODO auto-generated method stub Return Inflater.inflate (R.layout.fragment_app, container, false); }}
5. Create a layout file Fragment_app.xml
<?xml version= "1.0" encoding= "Utf-8"? ><relativelayout xmlns:android= "http://schemas.android.com/apk/res/ Android "Android:layout_width=" Match_parent "android:layout_height=" match_parent "android:background=" #43ff00ff " > <textview android:id= "@+id/textview1" android:layout_width= "Wrap_content" Android:layout_h eight= "Wrap_content" android:layout_centerinparent= "true" android:text= "This is the application interface" Android:textappeara Nce= "? Android:attr/textappearancelarge"/></relativelayout>
6. Create Gamesfragment Inheritance Android.support.v4.app.Fragment
Package Com.example.tabswithswie.fragments;import Com.example.tabswithswie.r;import Android.os.bundle;import Android.support.v4.app.fragment;import Android.view.layoutinflater;import Android.view.view;import Android.view.viewgroup;public class Gamesfragment extends Fragment {@Override public view Oncreateview (layoutin Flater inflater, ViewGroup container, Bundle savedinstancestate) {//TODO auto-generated method stub Return Inflater.inflate (R.layout.fragment_game, container, false); }}
7. Create a layout file Fragment_game.xml
<?xml version= "1.0" encoding= "Utf-8"? ><relativelayout xmlns:android= "Http://schemas.android.com/apk/res/android" android:layout_width= " Match_parent " android:layout_height=" Match_parent " android : background= "#9445f353" > <TextView android:id= "@+id/textview1" android:layout_width= "Wrap_ Content " android:layout_height=" Wrap_content " android:layout_centerinparent= "true" android:text= "Game" android:textappearance= "? Android: Attr/textappearancelarge "&NBSP;/></RELATIVELAYOUT>
8. Create Moviesfragment Inheritance Android.support.v4.app.Fragment
Package Com.example.tabswithswie.fragments;import Com.example.tabswithswie.r;import Android.os.bundle;import Android.support.v4.app.fragment;import Android.view.layoutinflater;import Android.view.view;import Android.view.viewgroup;public class Moviesfragment extends Fragment {@Override public view Oncreateview (Layouti Nflater inflater, ViewGroup container, Bundle savedinstancestate) {//TODO auto-generated method stub Return Inflater.inflate (R.layout.fragment_movie, container, false); }}
9. Create a layout file Fragment_movie.xml
<?xml version= "1.0" encoding= "Utf-8"? ><relativelayout xmlns:android= "http://schemas.android.com/apk/res/ Android "Android:layout_width=" Match_parent "android:layout_height=" match_parent "android:background=" #34fef443 " > <textview android:id= "@+id/textview1" android:layout_width= "Wrap_content" Android:layout_h eight= "Wrap_content" android:layout_centerinparent= "true" android:text= "video" android:textappearance= " ? android:attr/textappearancelarge "/></relativelayout>
10, back to the Mainactivity class, add tabs to Actionbar, and handle the click-swipe event. Full code
package com.example.tabswithswie;import android.os.bundle;import android.support.v4.app.fragmenttransaction;import android.support.v4.view.viewpager;import Android.support.v4.view.viewpager.onpagechangelistener;import android.support.v7.app.actionbar;import android.support.v7.app.actionbar.tab;import android.support.v7.app.actionbar.tablistener;import android.support.v7.app.ActionBarActivity;import com.example.tabswithswie.adatper.TabsPagerAdapter; public class mainactivity extends actionbaractivity implements tablistener { private viewpager viewpager; private actionbar actionBar; private TabsPagerAdapter mTabsPagerAdapter; private string[] tabs ={"Apps", "Games", "Videos"}; @Override protected void&Nbsp;oncreate (bundle savedinstancestate) { Super.oncreate (savedinstancestate); setcontentview ( R.layout.activity_main); //get viewpager viewPager = (Viewpager) findviewbyid (R.id.pager); //instantiation of pageradapter Mtabspageradapter = new tabspageradapter (Getsupportfragmentmanager ()); viewpager.setadapter (Mtabspageradapter); //Get adapted actionbar actionbar = Getsupportactionbar (); //Set Home button is not clickable actionbar.sethomebuttonenabled (false); &NBSP;&NBSP;&NBsp; //Setting the top navigation mode -tabs Actionbar.setnavigationmode (actionbar.navigation_mode_tabs); // Add Tag for (string tab:tabs) { actionbar.addtab ( Actionbar.newtab (). SetText (tab). Settablistener (this)); } //Setting the Listener event for Viewpager Switch viewpager.setonpagechangelistener (New onpagechangelistener () { @Override public void onpageselected (INT&NBsp;position) { //page swipe, top label changes actionbar.setselectednavigationitem (position); } @Override public void onpagescrolled (int arg0, float ARG1,&NBSP;INT&NBSP;ARG2) { // TODO Auto-generated method stub } @Override public void onpagescrollstatechanged (int arg0) { // TODO Auto-generated method stub } &NBSP); } @Override public void ontabreselected (TAB&NBSP;ARG0,&NBSP;FRAGMENTTRANSACTION&NBSP;ARG1) { // TODO Auto-generated method stub } @Override public Void ontabselected (tab tab, fragmenttransaction fragmenttransaction) { //tab selected, toggle viewpager Viewpager.setcurrentitem (Tab.getposition ()); } @Override public void ontabunselected (TAB&NBSP;ARG0,&NBSP;FRAGMENTTRANSACTION&NBSP;ARG1) { // todo auto-generated method stub } }
This is the code, and it's done. Sample code Download
This article is from the "Cocosdev" blog, make sure to keep this source http://xuzhiwei.blog.51cto.com/978424/1533803