slidingmenu是一个开源组件。提供了左滑菜单和右滑菜单。下面是一个使用例子的工程源码。
在项目中不去管源码仅仅只是使用的话,主要需要实现的有3个类
MainActivity:这个类中设置slidingmenu中的设置信息。是否显示左侧menu,右侧menu,menu的宽度,过场动画,默认出现的页面
ContentFragment:显示的主页面
MenuFragment:菜单项
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setTitle("SlidingMenu Demo");
setContentView(R.layout.frame_content);
// set the Behind View
setBehindContentView(R.layout.frame_menu);
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
MenuFragment menuFragment = new MenuFragment();
fragmentTransaction.replace(R.id.menu, menuFragment);
fragmentTransaction.replace(R.id.content, new ContentFragment("Welcome"),"Welcome");
fragmentTransaction.commit();
// customize the SlidingMenu
SlidingMenu sm = getSlidingMenu();
sm.setShadowWidth(50);
sm.setShadowDrawable(R.drawable.shadow);
sm.setBehindOffset(60);
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().setDisplayHomeAsUpEnabled(true);
}
SlidingMenu sm = getSlidingMenu();
下面的几条语句分别设置了Shadow的宽度,Menu的宽度,
setTouchModeAbove:设置滑动动作出发菜单出现的区域,可以是全屏或者仅仅屏幕边缘