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

简介: 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')

4.打开 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);
            }
        });

(2)系统返回键监听


 

@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;
    }

(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);//右侧菜单的阴影图片

目录
相关文章
|
SQL 人工智能 Dart
Android Studio的插件生态非常丰富
Android Studio的插件生态非常丰富
773 1
|
Ubuntu Linux Android开发
Android Studio支持多种操作系统
Android Studio支持多种操作系统
601 1
|
9月前
|
开发工具 Android开发 iOS开发
如何在Android Studio中配置Flutter环境?
如何在Android Studio中配置Flutter环境?
2007 61
|
4月前
|
存储 API Android开发
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
223 4
【02】完整的安卓二次商业实战-配置gradle-构建打包原生安卓项目-调试本地运行模拟器-优雅草伊凡
|
4月前
|
Java 开发工具 Maven
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
【01】完整的安卓二次商业实战-详细的初级步骤同步项目和gradle配置以及开发思路-优雅草伊凡
265 6
|
8月前
|
Android开发 Windows
Android studio 报错Connect to 127.0.0.1:8888 [/127.0.0.1] failed: Connection refused: connect(已解决)
这是一篇关于解决Android Studio报错“Connect to 127.0.0.1:8888 failed: Connection refused”的文章。问题通常因系统代理设置被Android Studio自动保存导致。解决方法是找到系统中Android Studio使用的gradle.properties文件(位于Windows的C:\Users\你的电脑用户名\.gradle或Mac的/Users/.{你的用户目录}/.gradle),删除或注释掉多余的代理配置后保存并重新Sync项目。希望此经验能帮助快速解决同类问题!
1228 36
|
8月前
|
Java Android开发
Android studio中build.gradle文件简单介绍
本文解析了Android项目中build.gradle文件的作用,包括jcenter仓库配置、模块类型定义、包名设置及依赖管理,涵盖本地、库和远程依赖的区别。
718 19
|
10月前
|
安全 算法 小程序
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
662 28
【03】微信支付商户申请下户到配置完整流程-微信开放平台创建APP应用-填写上传基础资料-生成安卓证书-获取Apk签名-申请+配置完整流程-优雅草卓伊凡
|
11月前
|
前端开发 Java 编译器
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
321 36
当flutter react native 等混开框架-并且用vscode-idea等编译器无法打包apk,打包安卓不成功怎么办-直接用android studio如何打包安卓apk -重要-优雅草卓伊凡
|
10月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。