SlidingMenu的使用
1 在Activity中使用
第一步 导入库文件 添加依赖库
第二步 new 一个slidingmenu
第三步 设置相应属性
第四步 设置slidingmenu显示的layout 并添加到activity上
final SlidingMenu sm=new SlidingMenu(this);
第三步
sm.setMode(SlidingMenu.LEFT);//设置slidingmenu划出的方向
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置可以滑出范围
sm.setShadowDrawable(R.drawable.shadow);//设置slidingmenu和主页面内容间的阴影效果
sm.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);//设置阴影的宽度
sm.setBehindOffsetRes(R.dimen.slidingmenu_behindofset);//设置slidingmenu的宽度
//sm.setBehindWidth(200);
sm.setFadeEnabled(true);//允许设置渐变
sm.setFadeDegree(0.5f);//设置渐变的范围
第四步
sm.setMenu(R.layout.slidingmenu);//设置slidingmenu显示需要的layout
sm.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//添加到activity上显示
findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getApplicationContext(), "点击事件", 1).show();
sm.toggle();//动态开关,如果当前是打开的slidignmenu,就会关闭slidingmenu,反之亦然。
}
});
2SlidingMneu+Fragment的使用
————————
添加滑动菜单的步骤:
第一步 获取滑动菜单
Slidingmenu sm=getSlidingmenu();
第二部 设置划出菜单的布局
第三部 设置划出菜单对应的fragment
第四步 设置互动菜单的属性
sm = getSlidingMenu(); //获取slidingmenu
//设置划出菜单的布局
setBehindContentView(R.layout.menu_fragment);
//设置滑动菜单布局对应的fragment
MenuLeftFragment leftFragment=new MenuLeftFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.menu_fragment, leftFragment).commit();
//设置滑动菜单的一些属性
sm.setMode(SlidingMenu.LEFT_RIGHT);//设置slidingmeni从哪侧出现 两侧都有 如果右侧没有设置 只能设置为left
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
sm.setShadowDrawable(R.drawable.shadow);
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setFadeEnabled(true);
sm.setFadeDegree(0.5f);
第五步 设置右侧的滑动菜单
sm.setSecondaryMenu(R.layout.menu_right_fragment);
sm.setSecondaryShadowDrawable(R.drawable.shadow);
MenuRightFragment menu_right=new MenuRightFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.menu_right_fragment,menu_right ).commit();
//设置actionbar
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);//显示向左指向的一个箭头
setSlidingActionBarEnabled(false); //设置slidingmenu上也有actionbar
两个重载方法设置actionbar和相应点击事件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
//相应actionbar的点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home: //左侧响应的事件
sm.toggle();
break;
case R.id.action_settings: //右侧
Toast.makeText(this, "点击了Actionbar item", 0).show();
//sm.toggle();
//((SlidingMenu)sm.getSecondaryMenu()).toggle();
sm.showSecondaryMenu(); //打开右侧菜单
break;
default:
break;
}
return super.onOptionsItemSelected(item);
}
对应的
设置内容布局的默认fragment
contentFragment = new Fragement01();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_fragment, contentFragment)
.commit();
如果需要点击滑动菜单中的条目更换主页面的布局 可以添加一个回调的方法
3.SlidingMenu和ViewPager滑动冲突的解决
滑动的时候不知道滑动的是滑动菜单还是viewpager的页面
private OnPageChangeListener changeListener = new OnPageChangeListener() {
@Override
public void onPageSelected(int index) {
switch (index) {
case 0:
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
break;
default:
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
break;
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
};
导入依赖库遇到的问题
出现问题解决:1复制slidingmenu中的v4包到项目中
2 项目—properties—order and Export
3 还不行的话把v7包删掉
导入libirary库文件是 有红色的x的话 不是路径不对 就是应该把库文件添加到工作空间中即可
1 file-import-Existing Android Code Into Workspase—库文件
2 库文件—propertice—android
3 添加依赖库
项目—properise—android—add—选择库文件—applay–ok