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

目录
相关文章
|
3月前
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
246 1
|
1月前
|
编译器 Android开发
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
配置环境变量,使CMakeLists.txt可直接使用Android NDK工具链编译项目
|
1月前
|
Java Unix Linux
Android Studio中Terminal运行./gradlew clean build提示错误信息
遇到 `./gradlew clean build`命令执行出错时,首先应检查错误信息的具体内容,这通常会指向问题的根源。从权限、环境配置、依赖下载、版本兼容性到项目配置本身,逐一排查并应用相应的解决措施。记住,保持耐心,逐步解决问题,往往复杂问题都是由简单原因引起的。
240 2
|
1月前
|
Java Android开发 Windows
玩转安卓之配置gradle-8.2.1
为安卓开发配置Gradle 8.2.1,包括下载和解压Gradle、配置环境变量、修改配置文件以增加国内镜像,以及在Android Studio中配置Gradle和JDK的过程。
73 0
玩转安卓之配置gradle-8.2.1
|
2月前
|
XML IDE 开发工具
🔧Android Studio高级技巧大公开!效率翻倍,编码不再枯燥无味!🛠️
【9月更文挑战第11天】在软件开发领域,Android Studio凭借其强大的功能成为Android开发者的首选IDE。本文将揭示一些提升开发效率的高级技巧,包括自定义代码模板、重构工具、高级调试技巧及多模块架构。通过对比传统方法,这些技巧不仅能简化编码流程,还能显著提高生产力。例如,自定义模板可一键插入常用代码块;重构工具能智能分析并安全执行代码更改;高级调试技巧如条件断点有助于快速定位问题;多模块架构则提升了大型项目的可维护性和团队协作效率。掌握这些技巧,将使你的开发之旅更加高效与愉悦。
64 5
|
3月前
|
Android开发
Android 配置蓝牙遥控器键值
本文详细介绍了Android系统中配置蓝牙遥控器键值的步骤,包括查看设备号、配置键位映射文件(kl文件)、部署kl文件以及调试过程,确保蓝牙遥控器的按键能正确映射到Android系统对应的按键功能。
138 1
|
3月前
|
编解码 Android开发
【Android Studio】使用UI工具绘制,ConstraintLayout 限制性布局,快速上手
本文介绍了Android Studio中使用ConstraintLayout布局的方法,通过创建布局文件、设置控件约束等步骤,快速上手UI设计,并提供了一个TV Launcher界面布局的绘制示例。
57 1
|
3月前
|
Android开发
Android Studio: 解决Gradle sync failed 错误
本文介绍了解决Android Studio中出现的Gradle同步失败错误的步骤,包括从`gradle-wrapper.properties`文件中获取Gradle的下载链接,手动下载Gradle压缩包,并替换默认下载路径中的临时文件,然后重新触发Android Studio的"Try Again"来完成同步。
1351 0
Android Studio: 解决Gradle sync failed 错误
|
3月前
|
Java Android开发 芯片
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
本文介绍了如何将基于全志H713芯片的AOSP Android源码导入Android Studio以解决编译和编码问题,通过操作步骤的详细说明,展示了在Android Studio中利用代码提示和补全功能快速定位并修复编译错误的方法。
136 0
使用Android Studio导入Android源码:基于全志H713 AOSP,方便解决编译、编码问题
|
3月前
|
API 开发工具 Android开发
Android Studio:解决AOSP自编译framework.jar引用不到的问题
在Android Studio中解决AOSP自编译framework.jar引用问题的几种方法,包括使用相对路径、绝对路径和通过`${project.rootDir}`动态获取路径的方法,以避免硬编码路径带来的配置问题。
235 0
Android Studio:解决AOSP自编译framework.jar引用不到的问题