android studio 下使用SlidingMenu侧滑菜单

项目中需要使用到侧滑菜单,由于一直有点抵触使用第三方库,因为大部分库为了兼容各种需求,封装得大都比较笨重,所以就在网上找有没有自己写的自定义侧滑菜单,还真被我找到了史上最简单粗暴实现侧滑菜单 ,使用这个自定义的SlideMenu确实很轻松的给项目集成了侧滑菜单,然后却存在一些问题,比如我的主页中用到viewpager来实现广告控件,当我拉出侧滑菜单时,由于主页广告bannerView自动切换,我猜想是否是由于焦点问题,这样导致侧滑菜单自动执行了menu.close()操作,体验实在太差 ,不能忍。一开始的解决办法是当侧滑菜单滑出时,暂停bannerView自动切换,虽然有点取巧,但还是解决了那个问题。但是经理要求带滑出动画,以及淡入淡出的效果。时间紧迫,想想还是先把它放下,研究了一下大名鼎鼎的侧滑菜单:SlidingMenu框架

接入过程还是碰到了一些小问题,花了些时间,就此简单记录一下

  1. 查了下github,该项目好像不支持compile 方式从maven仓库添加,那就从github上面clone下项目,找到library项目
  2. 打开项目配置:Project Structure --> 左上角加号 --> import gradle project --> 找到对应library(最好改名为slidingMenu,以便一眼可以看出该库)
  3. 同样在Project Structure中添加Depenencies,添加对该项目的引用,或者可以通过moudle下的gradle文件中加入:
 compile project(':slidingMenu')

4.修改slidingMenu gradle文件,大致如下,sdk版本按主项目修改:


修改slidingMenu gradle文件

如上算是把library成功导入了主项目,接着开始使用slidingMenu

  • activity_main.xml布局如下:(slidingMenu里面包含项目主页,左侧菜单栏不放入其中)
  

        

  • MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
   
        slidingMenu = new SlidingMenu(this);//创建对象
        slidingMenu.setMode(SlidingMenu.LEFT);//设定模式,SlidingMenu在左边
        slidingMenu.setBehindOffsetRes(R.dimen.sliding_menu_offset);//配置slidingmenu偏移出来的尺寸
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏都可以拖拽触摸,打开slidingmenu
        slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);//附加到当前的activity上去
        leftView = inflate(this, R.layout.drawable_tab, null);
        slidingMenu.setMenu(leftView);//也可以直接跟layout id
}
  • menu开关操作
menu.toggle();// 动态判断自动关闭或开启SlidingMenu   
menu.showContent();// 显示内容
menu.showMenu();// 显示SlidingMenu  
  • 大部分情况下还是需要对左侧菜单栏布局进行操作的,监听的话就通过上面的leftView来查找指定的view。

  • menu开关监听

// 监听menu打开  
menu.setOnOpenedListener(new OnOpenedListener() {  
    @Override  
    public void onOpened() {  
    }  
});  
// 监听menu关闭  
menu.setOnClosedListener(new OnClosedListener() {  
    @Override  
    public void onClosed() {  
    }  
}); 

自此已经将slidingMenu接入项目并且使用起来,后续需要找时间研究一下源码

你可能感兴趣的:(android studio 下使用SlidingMenu侧滑菜单)