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


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yechaoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值