关于SlidingMenu的使用

SlidingMenu的使用

1 在Activity中使用

第一步 导入库文件 添加依赖库
第二步 new 一个slidingmenu
第三步 设置相应属性
第四步 设置slidingmenu显示的layout 并添加到activity上

final SlidingMenu sm=new SlidingMenu(this);
第三步
sm.setMode(SlidingMenu.LEFT);//设置slidingmenu划出的方向
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//设置可以滑出范围
sm.setShadowDrawable(R.drawable.shadow);//设置slidingmenu和主页面内容间的阴影效果
sm.setShadowWidthRes(R.dimen.slidingmenu_shadow_width);//设置阴影的宽度
sm.setBehindOffsetRes(R.dimen.slidingmenu_behindofset);//设置slidingmenu的宽度
//sm.setBehindWidth(200);
sm.setFadeEnabled(true);//允许设置渐变
sm.setFadeDegree(0.5f);//设置渐变的范围
第四步
sm.setMenu(R.layout.slidingmenu);//设置slidingmenu显示需要的layout
sm.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//添加到activity上显示

findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            Toast.makeText(getApplicationContext(), "点击事件", 1).show();

            sm.toggle();//动态开关,如果当前是打开的slidignmenu,就会关闭slidingmenu,反之亦然。
        }
    });

2SlidingMneu+Fragment的使用

这里写图片描述————————
添加滑动菜单的步骤:
第一步 获取滑动菜单
Slidingmenu sm=getSlidingmenu();
第二部 设置划出菜单的布局
第三部 设置划出菜单对应的fragment
第四步 设置互动菜单的属性

sm = getSlidingMenu(); //获取slidingmenu
//设置划出菜单的布局
setBehindContentView(R.layout.menu_fragment);
//设置滑动菜单布局对应的fragment
MenuLeftFragment leftFragment=new MenuLeftFragment();
getSupportFragmentManager().beginTransaction().replace(R.id.menu_fragment, leftFragment).commit();
//设置滑动菜单的一些属性
sm.setMode(SlidingMenu.LEFT_RIGHT);//设置slidingmeni从哪侧出现 两侧都有 如果右侧没有设置 只能设置为left
sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
sm.setShadowDrawable(R.drawable.shadow);
sm.setShadowWidthRes(R.dimen.shadow_width);
sm.setBehindOffsetRes(R.dimen.slidingmenu_offset);
sm.setFadeEnabled(true);
sm.setFadeDegree(0.5f);

第五步 设置右侧的滑动菜单
sm.setSecondaryMenu(R.layout.menu_right_fragment);
sm.setSecondaryShadowDrawable(R.drawable.shadow);

    MenuRightFragment menu_right=new MenuRightFragment();
    getSupportFragmentManager().beginTransaction().replace(R.id.menu_right_fragment,menu_right ).commit();


    //设置actionbar

    getActionBar().setHomeButtonEnabled(true);
    getActionBar().setDisplayHomeAsUpEnabled(true);//显示向左指向的一个箭头
    setSlidingActionBarEnabled(false); //设置slidingmenu上也有actionbar

两个重载方法设置actionbar和相应点击事件
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}

//相应actionbar的点击事件
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case android.R.id.home:  //左侧响应的事件
        sm.toggle();
        break;
    case R.id.action_settings:  //右侧
        Toast.makeText(this, "点击了Actionbar item", 0).show();
        //sm.toggle();
        //((SlidingMenu)sm.getSecondaryMenu()).toggle();

        sm.showSecondaryMenu(); //打开右侧菜单

        break;

    default:
        break;
    }


    return super.onOptionsItemSelected(item);
}

对应的
设置内容布局的默认fragment
contentFragment = new Fragement01();
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.content_fragment, contentFragment)
.commit();

如果需要点击滑动菜单中的条目更换主页面的布局 可以添加一个回调的方法

3.SlidingMenu和ViewPager滑动冲突的解决

滑动的时候不知道滑动的是滑动菜单还是viewpager的页面

private OnPageChangeListener changeListener = new OnPageChangeListener() {

    @Override
    public void onPageSelected(int index) {
        switch (index) {
        case 0:
            sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
            break;

        default:
            sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_NONE);
            break;
        }
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {
        // TODO Auto-generated method stub

    }

    @Override
    public void onPageScrollStateChanged(int arg0) {
        // TODO Auto-generated method stub

    }
};

导入依赖库遇到的问题

出现问题解决:1复制slidingmenu中的v4包到项目中
2 项目—properties—order and Export
3 还不行的话把v7包删掉

这里写图片描述
导入libirary库文件是 有红色的x的话 不是路径不对 就是应该把库文件添加到工作空间中即可
1 file-import-Existing Android Code Into Workspase—库文件
2 库文件—propertice—android
这里写图片描述
3 添加依赖库
项目—properise—android—add—选择库文件—applay–ok
这里写图片描述

猜你喜欢

转载自blog.csdn.net/shuiermengqi/article/details/47020695