Android Studio引入侧边栏SlidingMenu,配置及简单使用

举报
yechaoa 发表于 2022/05/30 23:08:58 2022/05/30
【摘要】 这个三方库已经是三四年前的了,但是依然有不少人在使用。 库的地址:https://github.com/jfeinstein10/SlidingMenu 1.下载,解压,找到其中的library,重命名为SlidingMenu。 2.重命名之后,直接复制到项目中,位置与app文件件同级,import  module的形式...

这个三方库已经是三四年前的了,但是依然有不少人在使用。

库的地址: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文件,修改如下:

  
  1. buildscript {
  2. repositories {
  3. mavenCentral()
  4. }
  5. dependencies {
  6. classpath 'com.android.tools.build:gradle:1.1.0'//这个必须要改
  7. }
  8. }
  9. apply plugin: 'android-library'
  10. dependencies {
  11. compile 'com.android.support:support-v4:13.0.0'
  12. }
  13. android {
  14. compileSdkVersion 21//这里不能超过23,原因是Android6.0不支持FloatMath.sin()了,要么修改源码,要么在23以下
  15. buildToolsVersion "24.0.3"
  16. defaultConfig {
  17. minSdkVersion 16
  18. targetSdkVersion 24
  19. }
  20. sourceSets {
  21. main {
  22. java.srcDirs = ['src']
  23. resources.srcDirs = ['src']
  24. aidl.srcDirs = ['src']
  25. renderscript.srcDirs = ['src']
  26. res.srcDirs = ['res']
  27. assets.srcDirs = ['assets']
  28. manifest.srcFile 'AndroidManifest.xml'
  29. }
  30. }
  31. }

除了注释的两个地方,剩下的可以参照自己app下的build.gradle文件修改。改好之后ReBuild/Make Project

5.简单使用

(1)初始化及设置参数


  
  1. slidingMenu = new SlidingMenu(this);
  2. //设定模式,SlidingMenu在右边
  3. slidingMenu.setMode(SlidingMenu.RIGHT);
  4. //设置预留屏幕宽度
  5. slidingMenu.setBehindOffset(MyUtil.getWindowWidth()/3);
  6. //全屏都可以拖拽触摸
  7. slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
  8. //附加到当前的Activity上去
  9. slidingMenu.attachToActivity(this,SlidingMenu.SLIDING_CONTENT);
  10. //设置阴影的宽度
  11. slidingMenu.setShadowWidthRes(R.dimen.shadow_width);
  12. //设置渐入渐出效果的值
  13. slidingMenu.setFadeDegree(0.35f);
  14. //为侧滑菜单设置布局
  15. slidingMenu.setMenu(R.layout.layout_sliding_menu);
  16. lvRightCategory = (ListView) findViewById(R.id.lv_right_category);
  17. //右边的slidingmenu不会调用此方法,只好使用完全打开的方法,setOnOpenedListener
  18. slidingMenu.setOnOpenListener(new SlidingMenu.OnOpenListener() {
  19. @Override
  20. public void onOpen() {
  21. MyUtil.i("setOnOpenListener");
  22. llGoodsListMain.setAlpha(0.5f);//设置主页的透明度
  23. }
  24. });
  25. slidingMenu.setOnOpenedListener(new SlidingMenu.OnOpenedListener() {
  26. @Override
  27. public void onOpened() {
  28. MyUtil.i("setOnOpenedListener");
  29. llGoodsListMain.setAlpha(0.5f);
  30. }
  31. });
  32. slidingMenu.setOnCloseListener(new SlidingMenu.OnCloseListener() {
  33. @Override
  34. public void onClose() {
  35. MyUtil.i("setOnCloseListener");
  36. llGoodsListMain.setAlpha(1f);
  37. }
  38. });
(2)系统返回键监听


  
  1. @Override
  2. public boolean onKeyDown(int keyCode, KeyEvent event) {
  3. if(keyCode==KeyEvent.KEYCODE_BACK){
  4. if(slidingMenu.isMenuShowing()){
  5. slidingMenu.toggle();
  6. }else {
  7. return super.onKeyDown(keyCode, event);
  8. }
  9. }
  10. return false;
  11. }
(3)常用属性

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

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。