Android Studio引入侧边栏SlidingMenu,配置及简单使用
这个三方库已经是三四年前的了,但是依然有不少人在使用。
库的地址:https://github.com/jfeinstein10/SlidingMenu
1.下载,解压,找到其中的library,重命名为SlidingMenu。
2.重命名之后,直接复制到项目中,位置与app文件件同级,import module的形式导入也可以。
3.在settings.gradle文件中添加 include ":SlidingMenu',在app文件夹下的build.gradle文件中添加:
compile project(':SlidingMenu')
SlidingMenu文件夹下的build.gradle文件,修改如下:
  
   - 
    
     
    
    
     
      buildscript {
     
    
- 
    
     
    
    
     
          repositories {
     
    
- 
    
     
    
    
     
              mavenCentral()
     
    
- 
    
     
    
    
     
          }
     
    
- 
    
     
    
    
     
          dependencies {
     
    
- 
    
     
    
    
     
              classpath 'com.android.tools.build:gradle:1.1.0'//这个必须要改
     
    
- 
    
     
    
    
     
          }
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
     
      apply plugin: 'android-library'
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      dependencies {
     
    
- 
    
     
    
    
     
          compile 'com.android.support:support-v4:13.0.0'
     
    
- 
    
     
    
    
     
      }
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      android {
     
    
- 
    
     
    
    
     
          compileSdkVersion 21//这里不能超过23,原因是Android6.0不支持FloatMath.sin()了,要么修改源码,要么在23以下
     
    
- 
    
     
    
    
     
          buildToolsVersion "24.0.3"
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
          defaultConfig {
     
    
- 
    
     
    
    
     
              minSdkVersion 16
     
    
- 
    
     
    
    
     
              targetSdkVersion 24
     
    
- 
    
     
    
    
     
          }
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
          sourceSets {
     
    
- 
    
     
    
    
     
              main {
     
    
- 
    
     
    
    
     
                  java.srcDirs = ['src']
     
    
- 
    
     
    
    
     
                  resources.srcDirs = ['src']
     
    
- 
    
     
    
    
     
                  aidl.srcDirs = ['src']
     
    
- 
    
     
    
    
     
                  renderscript.srcDirs = ['src']
     
    
- 
    
     
    
    
     
                  res.srcDirs = ['res']
     
    
- 
    
     
    
    
     
                  assets.srcDirs = ['assets']
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
                  manifest.srcFile 'AndroidManifest.xml'
     
    
- 
    
     
    
    
     
              }
     
    
- 
    
     
    
    
     
          }
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
      }
     
    
 除了注释的两个地方,剩下的可以参照自己app下的build.gradle文件修改。改好之后ReBuild/Make Project
 
5.简单使用
(1)初始化及设置参数
  
   - 
    
     
    
    
     
      	slidingMenu = new SlidingMenu(this);
     
    
- 
    
     
    
    
             //设定模式,SlidingMenu在右边
     
    
- 
    
     
    
    
     
              slidingMenu.setMode(SlidingMenu.RIGHT);
     
    
- 
    
     
    
    
             //设置预留屏幕宽度
     
    
- 
    
     
    
    
     
              slidingMenu.setBehindOffset(MyUtil.getWindowWidth()/3);
     
    
- 
    
     
    
    
             //全屏都可以拖拽触摸
     
    
- 
    
     
    
    
     
              slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
     
    
- 
    
     
    
    
             //附加到当前的Activity上去
     
    
- 
    
     
    
    
     
              slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
     
    
- 
    
     
    
    
             //设置阴影的宽度
     
    
- 
    
     
    
    
     
              slidingMenu.setShadowWidthRes(R.dimen.shadow_width);
     
    
- 
    
     
    
    
             //设置渐入渐出效果的值
     
    
- 
    
     
    
    
     
              slidingMenu.setFadeDegree(0.35f);
     
    
- 
    
     
    
    
             //为侧滑菜单设置布局
     
    
- 
    
     
    
    
     
              slidingMenu.setMenu(R.layout.layout_sliding_menu);
     
    
- 
    
     
    
    
     
              lvRightCategory = (ListView) findViewById(R.id.lv_right_category);
     
    
- 
    
     
    
    
     	
     
    
- 
    
     
    
    
             //右边的slidingmenu不会调用此方法,只好使用完全打开的方法,setOnOpenedListener
     
    
- 
    
     
    
    
     
              slidingMenu.setOnOpenListener(new SlidingMenu.OnOpenListener() {
     
    
- 
    
     
    
    
                 @Override
     
    
- 
    
     
    
    
                 public void onOpen() {
     
    
- 
    
     
    
    
     
                      MyUtil.i("setOnOpenListener");
     
    
- 
    
     
    
    
     
                      llGoodsListMain.setAlpha(0.5f);//设置主页的透明度
     
    
- 
    
     
    
    
     
                  }
     
    
- 
    
     
    
    
     
              });
     
    
- 
    
     
    
    
      
     
    
- 
    
     
    
    
     
              slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
     
    
- 
    
     
    
    
                 @Override
     
    
- 
    
     
    
    
                 public void onOpened() {
     
    
- 
    
     
    
    
     
                      MyUtil.i("setOnOpenedListener");
     
    
- 
    
     
    
    
     
                      llGoodsListMain.setAlpha(0.5f);
     
    
- 
    
     
    
    
     
                  }
     
    
- 
    
     
    
    
     
              });
     
    
- 
    
     
    
    
     
              slidingMenu.setOnCloseListener(new SlidingMenu.OnCloseListener() {
     
    
- 
    
     
    
    
                 @Override
     
    
- 
    
     
    
    
                 public void onClose() {
     
    
- 
    
     
    
    
     
                      MyUtil.i("setOnCloseListener");
     
    
- 
    
     
    
    
     
                      llGoodsListMain.setAlpha(1f);
     
    
- 
    
     
    
    
     
                  }
     
    
- 
    
     
    
    
     
              });
     
    
 
  
   - 
    
     
    
    
         @Override
     
    
- 
    
     
    
    
         public boolean onKeyDown(int keyCode, KeyEvent event) {
     
    
- 
    
     
    
    
             if(keyCode==KeyEvent.KEYCODE_BACK){
     
    
- 
    
     
    
    
                 if(slidingMenu.isMenuShowing()){
     
    
- 
    
     
    
    
     
                      slidingMenu.toggle();
     
    
- 
    
     
    
    
     
                  }else {
     
    
- 
    
     
    
    
                     return super.onKeyDown(keyCode, event);
     
    
- 
    
     
    
    
     
                  }
     
    
- 
    
     
    
    
     
              }
     
    
- 
    
     
    
    
             return false;
     
    
- 
    
     
    
    
     
          }
     
    
 menu.setMode(SlidingMenu.LEFT);如果只显示左侧菜单就是用LEFT,右侧就RIGHT,左右都支持就LEFT_RIGHT
 
menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置为全屏区域都可以滑动
 menu.setShadowDrawable(R.drawable.shadow);//设置阴影图片 
 menu.setShadowWidthRes(R.dimen.shadow_width);//设置阴影图片的宽度 
 menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);//SlidingMenu滑出时主页面显示的剩余宽度 
 menu.setBehindWidth(400);//设置SlidingMenu菜单的宽度 
 menu.setFadeDegree(0.35f);//SlidingMenu滑动时的渐变程度 
 menu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//使SlidingMenu附加在Activity上 
 menu.setMenu(R.layout.menu_layout);//设置menu的布局文件 
 menu.toggle();//动态判断自动关闭或开启SlidingMenu 
 menu.showMenu();//显示SlidingMenu 
 menu.showContent();//显示内容 
 menu.setOnOpenListener(onOpenListener);//监听slidingmenu打开时,【这个方法对右边的slidingmenu是无效的】
 
slidingMenu.setOnOpenedListener(OnOpenedListener);//监听slidingmenu完全打开
 
menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭时事件
 menu.OnClosedListener(OnClosedListener);//监听slidingmenu关闭后事件
 menu.setSecondaryShadowDrawable(R.drawable.shadowright);//右侧菜单的阴影图片
 
 
 
文章来源: blog.csdn.net,作者:yechaoa,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/yechaoa/article/details/53613238
- 点赞
- 收藏
- 关注作者
 
             
           
评论(0)