Android侧滑菜单开源库SlidingMenu使用

开源库地址:https://github.com/jfeinstein10/SlidingMenu

一、SlidingMenu导入

  1、首先要在GitHub下载库包并解压,将SlidingMenu-master目录下的library文件夹拷贝到自己的Project的app\libs目录下,然后我把文件夹名“library”改成“SlidingMenu”了

  2、SlidingMenu目录下的build.gradle文件需要更改,主要是一些sdk和tools的版本,和app目录下的build.gradle文件对应着改,还有classpath需要改成推荐的版本

  3、现在就可以导入了,File -> New -> Import Module,然后将SlidingMenu的完整路径(e.g. “C:\Demo\app\libs\SlidingMenu”)填写就可以了

  4、最后再在app目录下的build.gradle文件中追加一条“compile project(':SlidingMenu')”,然后Build一下Project就大功告成了

二、SlidingMenu使用 

  方法一:

SlidingMenu slidingMenu = new SlidingMenu(this);
slidingMenu.setMode(SlidingMenu.LEFT | SlidingMenu.RIGHT);  //Menu所在位置
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN |    //全屏滑动有效
        SlidingMenu.TOUCHMODE_MARGIN |  //边缘滑动有效
        SlidingMenu.TOUCHMODE_NONE);    //滑动无效
slidingMenu.setShadowWidthRes(R.dimen.shadow_width);    //menu边缘阴影宽度
slidingMenu.setShadowDrawable(R.drawable.shadow);   //阴影图片
slidingMenu.setFadeDegree(0.35f);   //menu褪色程度
slidingMenu.setBehindOffsetRes(R.dimen.behind_width);   //滑动后内容部分还剩余的宽度
slidingMenu.setBehindWidthRes(R.dimen.behind_width);    //滑动后菜单显示宽度
slidingMenu.setBehindScrollScale(0.5f);    //菜单滚动速度比内容滚动速度。。。
slidingMenu.setMenu(R.layout.menu); //设置菜单部分布局
RecyclerView recyclerView = new RecyclerView(this);
slidingMenu.setSelectedView(recyclerView);
slidingMenu.setSelectorDrawable(R.drawable.avatar);
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_WINDOW |     //滑动部分包括ActionBar
        SlidingMenu.SLIDING_CONTENT);   //不包括ActionBar

  setBehindOffsetRes和setBehindWidthRes需要二选一,不可以同时使用,另外上面的代码只是拿来说明SlidingMenu是怎么使用的,不能直接拿来运行。需要运行的话需要把一些函数的多个参数改成一个,setBehindOffsetRes和setBehindWidthRes保留一个。

  方法二:

public class MainActivity extends SlidingActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        setBehindContentView(R.layout.menu);

        SlidingMenu slidingMenu = getSlidingMenu();
        slidingMenu.setMode(SlidingMenu.RIGHT);
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
        slidingMenu.setShadowWidthRes(R.dimen.shadow_width);
        slidingMenu.setShadowDrawable(R.drawable.shadow);
        slidingMenu.setFadeDegree(0.35f);
        slidingMenu.setBehindWidthRes(R.dimen.behind_width);

    }
}

此种方法的MainActivity由于需要继承SlidingActivity,所以实现效果没有ToolBar

方法三:在xml文件里面直接把SlidingMenu写进去

<?xml version="1.0" encoding="utf-8"?>
<com.jeremyfeinstein.slidingmenu.lib.SlidingMenu
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/slm_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

  MainActivity中

@Override
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.slidingmenu);
        setSlidingMenu();       //设置SlidingMenu
        ButterKnife.bind(this);    //需要在slidingmenu.setContent(R.layout.activity_main)之后执行
    }

private void setSlidingMenu() {
        slidingMenu = (SlidingMenu)findViewById(R.id.slm_main);
        slidingMenu.setMode(SlidingMenu.SLIDING_WINDOW);       
        slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);    
        slidingMenu.setBehindWidth((int) (0.75f * getResources().getDisplayMetrics().widthPixels));  
        slidingMenu.setFadeDegree(0.5f);        
        slidingMenu.setBehindScrollScale(0f);   
        slidingMenu.setShadowDrawable(R.drawable.shadow);       
        slidingMenu.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);
//        slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);    //因为方法三是把slidingmenu写入xml,所以无需attach
        slidingMenu.setMenu(R.layout.menu_slidingmenu);
        slidingMenu.setContent(R.layout.activity_main);   
    }

  

  

转载于:https://www.cnblogs.com/roocky/p/5165223.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值