您的位置:首页 > 其它

安卓开发笔记——关于开源项目SlidingMenu的使用介绍(仿QQ5.0侧滑菜单)

2015-04-23 09:53 761 查看
记得去年年末的时候写过这个侧滑效果,当时是利用自定义HorizontalScrollView来实现的,效果如下:

package com.rabbit.slidemenu.ui;

import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import com.example.slidemenutest.R;

public class MenuFragment extends Fragment {

@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
return inflater.inflate(R.layout.leftmenu, container, false);

}

}


View Code
3、主Activity(重点),代码非常简单,大家看注释就可以了。

package com.rabbit.slidemenu.ui;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.KeyEvent;

import com.example.slidemenutest.R;
import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;

public class MainActivity extends FragmentActivity {
//声明Slidemenu对象
private SlidingMenu slidingMenu;

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

//替换主界面内容
getSupportFragmentManager().beginTransaction().replace(R.id.fl_main, new MainFragment()).commit();

//实例化菜单控件
slidingMenu=new SlidingMenu(this);
//设置相关属性
slidingMenu.setMode(SlidingMenu.LEFT);//菜单靠左
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//全屏支持触摸拖拉
slidingMenu.setBehindOffset(200);//设置菜单大小
slidingMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);//不包含ActionBar
slidingMenu.setMenu(R.layout.leftmenu);
//替换掉菜单内容
getSupportFragmentManager().beginTransaction().replace(R.id.leftmenu, new MenuFragment()).commit();

}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
//重写了Menu监听,实现按下手机Menu键弹出和关闭侧滑菜单
if(keyCode==KeyEvent.KEYCODE_MENU){
slidingMenu.toggle();
}

return super.onKeyDown(keyCode, event);
}

}


再来看下关于SlidingMenu 的一些介绍和API:

1、得到侧滑菜单

SlidingMenu sm = getSlidingMenu();

2、设置侧滑菜单是从左边出来还是从右边出来

sm.setMode(SlidingMenu.LEFT);

3、设置滑动菜单出来之后,内容页 , 显示的剩余宽度

sm.setBehindWidthRes(R.dimen.slidingmenu_offset);

4、设置滑动菜单的阴影, 设置阴影,阴影需要开始的时候,特别暗,慢慢的变淡

sm.setShadowDrawble(R.drawable.shadow);

5、设置阴影的宽度

sm.setShadowWidth(R.dimen.shadow_width);

6、设置滑动菜单的范围

//第一个参数SlidingMenu.TOUCHMODE_FULLSCREEN 可以全屏滑动

// 第二个参数SlidingMenu.TOUCHMODE_MARGIN 只能在边沿滑动

//三 个参数SlidingMenu.TOUCHMODE_NONE 不能滑动

sm.setTouchModeAbove( SlidingMenu.TOUCHMODE_FULLSCREEN );

7、设置SldingMenu自动判断当前是打开还是关闭

sm.toggle();

其他一些这里就不一一列出了,具体大家看官网https://github.com/jfeinstein10/slidingmenu吧,所有东西都在上面了。

最后还有个需要注意的地方,GitHub上面的介绍也指出了:

NOTE : you cannot use both behindOffset and behindWidth. You will get an exception if you try.

不要同时设置behindOffset和behindWidth,否则会导致异常。

作者:Balla_兔子
出处:http://www.cnblogs.com/lichenwei/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!旁边有“推荐”二字,你就顺手把它点了吧,相得准,我分文不收;相不准,你也好回来找我!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐