技术要点:    android.support.v4.widget.DrawerLayout 

                        打开抽屉: DrawerLayout .openDrawer();

                       关闭抽屉:DrawerLayout.closeDrawer( );

为slidingLayout设置一个layout_grative属性



中间Android DrawerLayout+ fragment 布局实现左右侧滑_第1张图片  左侧Android DrawerLayout+ fragment 布局实现左右侧滑_第2张图片 右侧 Android DrawerLayout+ fragment 布局实现左右侧滑_第3张图片

点击first Android DrawerLayout+ fragment 布局实现左右侧滑_第4张图片   点击second Android DrawerLayout+ fragment 布局实现左右侧滑_第5张图片



代码: 

activity_main.xml

                                                        


first.xml

      

second.xml

      

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容器    private RelativeLayout mMenu_layout_left;//左边抽屉    private RelativeLayout mMenu_layout_right;//右边抽屉                         @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(this, android.R.layout.simple_expandable_list_item_1, TITLES));        menu_listview_r.setAdapter(new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, TITLES));                                 //监听菜单        menu_listview_l.setOnItemClickListener(new DrawerItemClickListenerLeft());        menu_listview_r.setOnItemClickListener(new DrawerItemClickListenerRight());    }    /**     * 左侧列表点击事件           * @author busy_boy     *     */    public class DrawerItemClickListenerLeft implements OnItemClickListener    {        @Override        public void onItemClick(AdapterView<?> parent, View view, int position, long id)        {            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();            Fragment fragment = null;                                         //根据item点击行号判断启用哪个Fragment            switch (position)            {                case 0:                    fragment = 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);//关闭mMenu_layout        }                             }    /**     * 右侧列表点击事件           * @author busy_boy     *     */    private class DrawerItemClickListenerRight implements OnItemClickListener {    @Override        public void onItemClick(AdapterView<?> parent, View view, int position, long id)        {            FragmentTransaction ft = getSupportFragmentManager().beginTransaction();            Fragment fragment = null;                                         //根据item点击行号判断启用哪个Fragment            switch (position)            {                case 0:                    fragment = 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);//关闭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

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 SecondFragment extends Fragment {@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {return inflater.inflate(R.layout.second, null);}}

android.support.v4.widget.DrawerLayout 官方文档位置:http://developer.android.com/reference/android/support/v4/widget/DrawerLayout.html

更多相关文章

  1. android 对话框模板布局之一
  2. android 写布局的时候注意大小写
  3. android xml 布局错误
  4. Android学习笔记(二)android studio基本控件及布局(实现图片查看器)
  5. android抽屉效果的实现
  6. 相对布局的一些属性
  7. android代码编写布局和控件
  8. [Android]屏幕自适应布局

随机推荐

  1. Android存储系统之源码篇
  2. android中ListView介绍
  3. Android(安卓)IntentService 深入分析
  4. Android开源网站一网打尽
  5. android,两个汉字转拼音工具!
  6. Android(安卓)studio 自带的 LoginActivi
  7. android之OkHttpClient通信
  8. Android(安卓)opencore 2.02 howto
  9. Porting Android(安卓)to S3C6410
  10. android Environment 常用方法(获取存储目