Technical points: Android.support.v4.widget.DrawerLayout
Open drawer: Drawerlayout. Opendrawer ();
Closed drawer: Drawerlayout.closedrawer ();
Set a Layout_grative property for Slidinglayout
Middle Left Right
Click First to click Second
Code:
Activity_main.xml
<android.support.v4.widget.drawerlayout xmlns:android= "Http://schemas.android.com/apk/res/android" Android:id = "@+id/drawer_layout" android:layout_width= "fill_parent" android:layout_height= "fill_parent" > <FrameLayout Android:id= "@+id/fragment_layout" android:layout_width= "fill_parent" android:layout_height= "Fill_parent" > </FrameLayout> <relativelayout android:id= "@+id/menu_layout_left" android:layout_width= "300DP" android:layout_height= "match_parent" android:layout_gravity= "left" android:background= "@andro Id:color/holo_red_light "> <listview android:id=" @+id/menu_listview_l "Android:layout_wi Dth= "Match_parent" android:layout_height= "match_parent" > </ListView> </relativelayout> ; <relativelayout android:id= "@+id/menu_layout_right" android:layout_width= "300DP" android:layout_he ight= "Match_parent" Android:layout_gravity= "Right" android:background= "#ff333333" > <listview android:id= "@+ Id/menu_listview_r "android:layout_width=" match_parent "android:layout_height=" Match_parent "> </ListView> </RelativeLayout></android.support.v4.widget.DrawerLayout>
First.xml
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android" android:id= "@+id/drawer_ Layout " android:layout_width=" match_parent " android:layout_height=" match_parent " android:o rientation= "vertical" > <textview android:id= "@+id/textview1" android:layout_width= "Wrap_ Content " android:layout_height=" wrap_content " android:text=" first " android:textappearance="? Android:attr/textappearancelarge "/> </LinearLayout>
Second.xml
<linearlayout xmlns:android= "http://schemas.android.com/apk/res/android" android:id= "@+id/drawer_ Layout " android:layout_width=" match_parent " android:layout_height=" match_parent " android:o rientation= "vertical" > <textview android:id= "@+id/textview1" android:layout_width= "Wrap_ Content " android:layout_height=" wrap_content " android:text=" second " android:textappearance="? Android:attr/textappearancelarge "/> </LinearLayout>
Mainactivity.java
Package Org.busyboy.drawerlayout;import Com.example.testdrawerlayout.r;import Android.os.bundle;import Android.app.activity;import Android.support.v4.app.fragment;import android.support.v4.app.FragmentActivity; Import Android.support.v4.app.fragmenttransaction;import Android.support.v4.widget.drawerlayout;import Android.view.gravity;import Android.view.view;import Android.widget.adapterview;import Android.widget.arrayadapter;import Android.widget.listview;import Android.widget.relativelayout;import Android.widget.adapterview.onitemclicklistener;import Android.widget.textview;public class MainActivity extends fragmentactivity{public static final string[] TITLES = {"First", "Second"}; Private Drawerlayout mdrawer_layout;//drawerlayout container private relativelayout mmenu_layout_left;//left drawer private Relativ Elayout mmenu_layout_right;//Right drawer @Override protected void OnCreate (Bundle savedinstancestate) {Super.oncreate (savedinstancesTate); Setcontentview (R.layout.activity_main); Mdrawer_layout = (drawerlayout) Findviewbyid (r.id.drawer_layout); Mmenu_layout_left = (relativelayout) Findviewbyid (r.id.menu_layout_left); Mmenu_layout_right = (relativelayout) Findviewbyid (r.id.menu_layout_right); ListView menu_listview_l = (ListView) Mmenu_layout_left.findviewbyid (r.id.menu_listview_l); ListView Menu_listview_r = (ListView) Mmenu_layout_right.findviewbyid (R.id.menu_listview_r); Menu_listview_l.setadapter (New arrayadapter<string> (this, Android. R.layout.simple_expandable_list_item_1, TITLES)); Menu_listview_r.setadapter (New arrayadapter<string> (this, Android. R.layout.simple_expandable_list_item_1, TITLES)); Listener Menu Menu_listview_l.setonitemclicklistener (new Draweritemclicklistenerleft ()); Menu_listview_r.setonitemclicklistener (New Draweritemclicklistenerright ()); }/** * Left list click event * @author busy_boy * */public class Draweritemclicklistenerleft implements O Nitemclicklistener {@Override public void Onitemclick (adapterview<?> parent, view view, int Positi On, long id) {fragmenttransaction ft = Getsupportfragmentmanager (). BeginTransaction (); Fragment Fragment = null; Determines which fragment switch (position) {Case 0:fragment = is enabled according to the item click line Number New Firstfragment (); Break Case 1:fragment = new secondfragment (); Break Default:break; } ft.replace (R.id.fragment_layout, fragment); Ft.commit (); Mdrawer_layout.closedrawer (mmenu_layout_left);//Close Mmenu_layout}}/** * Right list click things piece * @author bUsy_boy * * */Private class Draweritemclicklistenerright implements Onitemclicklistener {@Override PU Blic void Onitemclick (adapterview<?> parent, view view, int position, long id) {FRAGMENTTRANSACTI On ft = Getsupportfragmentmanager (). BeginTransaction (); Fragment Fragment = null; Determines which fragment switch (position) {Case 0:fragment = is enabled according to the item click line Number New Firstfragment (); Break Case 1:fragment = new secondfragment (); Break Default:break; } ft.replace (R.id.fragment_layout, fragment); Ft.commit (); Mdrawer_layout.closedrawer (mmenu_layout_right);//Close Mmenu_layout}}}
Firstfragment.java
Package Org.busyboy.drawerlayout;import Com.example.testdrawerlayout.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 Firstfragment extends Fragment {@Overridepublic view Oncreateview (layoutinflater Inflater, ViewGroup container,bundle savedinstancestate) {return inflater.inflate (R.layout.first, NULL);}}
Secondfragment.java
Import Com.example.testdrawerlayout.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 SecondFragment Extends Fragment {@Overridepublic View oncreateview (layoutinflater inflater, ViewGroup container,bundle Savedinstancestate) {return inflater.inflate (r.layout.second, NULL);}}
Androiddrawerlayout+fragment layout for left and right side slide