一 原生控件
DrawerLayout +NavigationView
DrawerLayout 作为外面的布局
NavigationView则为侧边 DrawerLayout里面还需要添加LinearLayout或者另外的布局文件作为主界面布局
NavigationView 中需要添加app:headLayout以及app:menu作为侧边的头部以及目录列表
在activity中还有
getSupportActionBar().setDisplayShowTitleEnabled(false);
ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close);
mDrawerToggle.syncState();
drawerLayout.addDrawerListener(mDrawerToggle);
navigationView = (NavigationView) findViewById(R.id.id_nv_menu);
setupDrawerContent(navigationView);
然后还有点击事件。。。
二、使用自定义控件
原理: 在一个屏幕大小中放两屏的布局 开始得时候scrollTo(menuWidth,0)滑动侧边栏的距离 显示住界面
滑动的时候重写父控件的onTouchEvent方法 依据getScrollX()滑动的距离判断是否显示侧边框 按照scrollTo()滑动实现