1.将SlidingMenu打包并导入到项目中
2.引入包名:
import com.slidingmenu.lib.SlidingMenu;
import com.slidingmenu.lib.app.SlidingActivity;
3.继承SlidingActivity并实现onCreate方法,
在onCreate方法中一定要设置
// set the Behind View设置SlidingMenu的布局样式
setBehindContentView(R.layout.frame_menu);
4.创建方法并执行:
private void initSlidingMenu() {
// customize the SlidingMenu
SlidingMenu sm = getSlidingMenu();
sm.setSecondaryMenu(R.layout.right_frame);
sm.setShadowWidth(50);
//sm.setBackground(getResources().getDrawable(R.drawable.slidingmenu_bg));
sm.setBackgroundDrawable(getResources().getDrawable(R.drawable.slidingmenu_bg));
sm.setShadowDrawable(R.drawable.shadow);
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
sm.setBehindOffset(dm.widthPixels-(dm.widthPixels/2+30));
sm.setFadeDegree(0.35f);
//设置slding menu的几种手势模式
//TOUCHMODE_FULLSCREEN 全屏模式,在content页面中,滑动,可以打开sliding menu
//TOUCHMODE_MARGIN 边缘模式,在content页面中,如果想打开slding ,你需要在屏幕边缘滑动才可以打开slding menu
//TOUCHMODE_NONE 自然是不能通过手势打开啦
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
//使用左上方icon可点,这样在onOptionsItemSelected里面才可以监听到R.id.home
getActionBar().setDisplayShowHomeEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setDisplayShowCustomEnabled(true);
getActionBar().setBackgroundDrawable(getResources().getDrawable(R.drawable.actionbar_title_bg));
getActionBar().setTitle("");
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
//toggle就是程序自动判断是打开还是关闭
toggle();
// getSlidingMenu().showMenu();// show menu
// getSlidingMenu().showContent();//show content
return true;
}
return super.onOptionsItemSelected(item);
}
5.在ViewPager监听中要设置手势监听
ViewPager.SimpleOnPageChangeListener onPageChangeListener = new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
acbar.setSelectedNavigationItem(position);
switch (position) {
case 0:
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
break;
case 1:
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
break;
case 2:
getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
break;
default:
// getSlidingMenu().setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
break;
}
}
};