美文网首页Android知识Android技术知识程序员
android studio 下使用SlidingMenu侧滑菜

android studio 下使用SlidingMenu侧滑菜

作者: david_zhw | 来源:发表于2017-03-11 10:37 被阅读742次

    项目中需要使用到侧滑菜单,由于一直有点抵触使用第三方库,因为大部分库为了兼容各种需求,封装得大都比较笨重,所以就在网上找有没有自己写的自定义侧滑菜单,还真被我找到了史上最简单粗暴实现侧滑菜单 ,使用这个自定义的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文件修改slidingMenu gradle文件

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

    • activity_main.xml布局如下:(slidingMenu里面包含项目主页,左侧菜单栏不放入其中)
      <com.jeremyfeinstein.slidingmenu.lib.SlidingMenu xmlns:sliding="http://schemas.android.com/apk/res-auto"
            android:id="@+id/slidingMenu"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
    
            <include layout="@layout/activity_main" />
    </com.jeremyfeinstein.slidingmenu.lib.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侧滑菜

        本文链接:https://www.haomeiwen.com/subject/cqqggttx.html