ActionBar (V7) is very simple to add, only need to specify application in Androidmanifest.xml or activity theme is Theme.holo or its subclasses can be, on Android In versions 3.0 and later, the activity contains the Actionbar component by default.
Drawerlayout (V4) is a control that implements the side-by-side menu effect in the Support library package, which can be said to be drawerlayout as a result of the appearance of third-party controls such as Menudrawer. Drawerlayout is divided into the side menu and the main content area, the side menu can be expanded and hidden according to the gesture (drawerlayout own characteristics), the content of the main content area can be changed with the menu click (This requires the user to implement).
<Android.support.v4.widget.DrawerLayoutxmlns:android= "Http://schemas.android.com/apk/res/android"Android:id= "@+id/drawer_layout"Xmlns:tools= "Http://schemas.android.com/tools"Android:layout_width= "Match_parent"Android:layout_height= "Match_parent"> <RelativelayoutAndroid:id= "@+id/content_frame"Android:layout_width= "Match_parent"Android:layout_height= "Match_parent"> <Com.heima.googleplay.widget.PagerTabAndroid:id= "@+id/tabs"Android:layout_width= "Match_parent"Android:layout_height= "42dip"Android:background= "@drawable/bg_tab"/> <Android.support.v4.view.ViewPagerAndroid:id= "@+id/pager"Android:layout_width= "Match_parent"Android:layout_height= "Match_parent"Android:layout_below= "@+id/tabs"Tools:context=". Mainactivity "/> </Relativelayout> <FramelayoutAndroid:id= "@+id/start_drawer"Android:layout_width= "250DP"Android:layout_height= "Match_parent"android:layout_gravity= "Start"Android:background= "@drawable/bg_tab"></Framelayout></Android.support.v4.widget.DrawerLayout>
Activity_main.xml
Main Page and slide two page, slide page:
<framelayout
Android:id= "@+id/start_drawer"
Android:layout_width= "250DP"
android:layout_height= "Match_parent"
Android:layout_gravity= "Start"
android:background= "@drawable/bg_tab" ></FrameLayout>
Start swipe from left to right, end swipe from right to left
Inherit actionbaractivity
Importandroid.app.Application;ImportAndroid.os.Bundle;Importandroid.support.v7.app.ActionBarActivity; Public Abstract classBaseactivityextendsactionbaractivity {Private Staticbaseactivity mforegroundactivity; @Overrideprotected voidonCreate (Bundle savedinstancestate) {//TODO auto-generated Method Stub Super. OnCreate (savedinstancestate); Initview (); } protected Abstract voidInitview (); @Overrideprotected voidOnresume () {//TODO auto-generated Method Stub Super. Onresume (); This. mforegroundactivity = This; } Public Staticbaseactivity getforegroundactivity () {returnmforegroundactivity; }}
baseactivity
Setcontentview (R.layout.activity_main);
Importandroid.support.v4.app.Fragment;ImportAndroid.support.v4.app.FragmentManager;ImportAndroid.support.v4.app.FragmentPagerAdapter;ImportAndroid.support.v4.app.FragmentStatePagerAdapter;ImportAndroid.support.v4.view.ViewPager;ImportAndroid.support.v4.view.ViewPager.OnPageChangeListener;ImportAndroid.view.Menu;Importcom.heima.googleplay.fragment.AppFragment;Importcom.heima.googleplay.fragment.BaseFragment;Importcom.heima.googleplay.fragment.FragmentFactory;Importcom.heima.googleplay.fragment.GameFragment;Importcom.heima.googleplay.fragment.HomeFragment;Importcom.heima.googleplay.utils.UIUtils;ImportCom.heima.googleplay.widget.PagerTab; Public classMainactivityextendsBaseactivityImplementsOnpagechangelistener {PrivatePagertab Mtabs; PrivateViewpager Mpager; @Override Public BooleanOncreateoptionsmenu (Menu menu) {//inflate the menu; This adds items to the action bar if it is present.getmenuinflater (). Inflate (R.menu.main, menu); return true; } Private classMainadapterextendsfragmentstatepageradapter{Privatestring[] Tab_names; Privatebasefragment fragment; PublicMainadapter (fragmentmanager FM) {Super(FM); Tab_names=Uiutils.getstringarray (r.array.tab_names); } @Override PublicCharsequence Getpagetitle (intposition) { //TODO auto-generated Method Stub returnTab_names[position]; } @Override PublicFragment GetItem (intposition) { returnfragmentfactory.createfragment (position); } @Override Public intGetCount () {//TODO auto-generated Method Stub returntab_names.length; }} @Overrideprotected voidInitview () {Setcontentview (r.layout.activity_main); Mtabs=(Pagertab) Findviewbyid (r.id.tabs); Mpager=(Viewpager) Findviewbyid (R.id.pager); Mainadapter Adapter=NewMainadapter (Getsupportfragmentmanager ()); Mpager.setadapter (adapter); //bind to togetherMtabs.setviewpager (Mpager); Mtabs.setonpagechangelistener ( This); } @Override Public voidOnpagescrollstatechanged (intarg0) { //TODO auto-generated Method Stub} @Override Public voidOnpagescrolled (intARG0,floatArg1,intarg2) { //TODO auto-generated Method Stub} @Override Public voidOnpageselected (intarg0) {Basefragment Fragment=fragmentfactory.createfragment (arg0); Fragment.show (); }}
mainactivity
Android App Architecture essay five (Actionbar and slide-out menu drawerlayout)