一、导入SlidingMenu库关联库。
首先在github上下载压缩包。
下载地址是:https://github.com/jfeinstein10/SlidingMenu
下载得到SlidingMenu-master.zip文件,解压后进入library文件夹,然后复制它的路径(比如F:\AndroidStudioProjects\Library\SlidingMenu-master\library),将其导入到项目中,步骤是File→New→Import Module,粘贴了路径后把Module name设置成【:SlidingMenu-library】,然后finish。
几乎任何直接导入的库都是会出问题的,所以要把gradle里面一些数字设置的和自己项目gradle的一样,这个SlidingMenu的gradle里面还可以把buildscript{}给注释掉,然后就可以使用了。
不过不要忘了将这个库给自己的项目添加依赖,在Project模式下的App文件上右键,选中Open Module Setting,然后是Dependencies,点右边那个【+】号,选择第三个,Module Dependency,将SlidingMenu库添加。如果忘记添加依赖,那就白导入库了。
最后最后,运行了还是会报错。
Error:(303, 27) 错误: 找不到符号
符号: 方法 sin(float)
位置: 类 FloatMath
这时候进入FloatMath类,会发现sin(float)方法其实就是:
return (float) Math.sin(angle);
所以把FloatMath.sin(f)改为Math.sin(f)即可。
(虽然这些过程我已经非常熟悉,还是要写一下,享受拍打键盘和挥霍时间的快感)
二、粗略的操作步骤
将MainActivity继承的AppCompatActivity改为SlidingFragmentActivity,然后把onCreate的修饰由protect改成public,之后就是如何写代码了。
1.配置主页面
setContentView(R.layout.activity_main);
2.配置左侧菜单布局
setBehindContentView(R.layout.activity_left);
3.配置菜单使用模式:左侧可用
SlidingMenu slidingMenu = getSlidingMenu();
slidingMenu.setMode(SlidingMenu.LEFT);
4.设置拖拽区域:整个屏幕
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
5.配置主页面留着屏幕的宽度:200像素
slidingMenu.setBehindOffset(200);
如果想添加一个右菜单的话,可以在第3步后面加上代码
slidingMenu.setSecondaryMenu(R.layout.activity_rightmenu);
不过一般很少看见这种设计。
以下是代码——
MainActivity:
public class MainActivity extends SlidingFragmentActivity{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initSlidingMenu();
}
private void initSlidingMenu(){
setContentView(R.layout.activity_main); //1.设置主页面
setBehindContentView(R.layout.activity_leftmenu); //2.设置左侧菜单
SlidingMenu slidingMenu = getSlidingMenu(); //3.配置菜单
slidingMenu.setMode(SlidingMenu.LEFT); //4.设置菜单显示模式为左侧可用
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//5.设置滑动模式为全屏滑动
slidingMenu.setTouchModeBehind(SlidingMenu.TOUCHMODE_FULLSCREEN);//同时给左菜单添加滑动,如果不添加的话你会发现滑开左侧菜单后,不能从菜单滑回主页面
slidingMenu.setBehindOffset(DensityUtils.dip2px(MainActivity.this, 100));//6.设置主页占据的宽度
}
}
左菜单布局:R.layout.activity_leftmenu
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/left_menu"