开源组件SlidingMenu,侧拉菜单的使用

来源:互联网 发布:ubuntu 14.04 启动器 编辑:程序博客网 时间:2024/05/17 18:49

项目地址:https://github.com/jfeinstein10/SlidingMenu

现在google推荐多使用Fragment,所以这个侧拉菜单我也是用到Fragment中,

1.新建SlidingMenuActivity继承SlidingFragmentActivity,

private void initMenu() {
setBehindContentView(R.layout.front_door_menu);//显示左侧菜单的布局里面是个FrameLayout
slidingMenu = getSlidingMenu();//SlidingFragmentActivity之后可以直接get
slidingMenu.setMode(SlidingMenu.LEFT);// 设置菜单滑动模式,菜单是出现在左侧还是右侧,还是左右两侧都有
slidingMenu.setBehindWidth((int) (App.SCREEN_WIDTH * 0.7));// 设置菜单的宽
// slidingMenu.setBehindOffsetRes((int) (App.SCREEN_WIDTH *
// 0.3));//
// SlidingMenu划出时主页面显示的剩余宽度
slidingMenu.setFadeDegree(0.35F);// SlidingMenu滑动时的渐变程度
slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置滑动的区域,是全屏还是中间

//下面是Fragment添加的步骤
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
MenuFragment menuFragment = new MenuFragment();
transaction.replace(R.id.door_menu, menuFragment);
FrontDoorFragment contentDoorFragment = new FrontDoorFragment();
mContent = contentDoorFragment;
transaction.replace(R.id.door_content, contentDoorFragment);
transaction.commitAllowingStateLoss();
}

ps:如果你的含有侧拉菜单主界面有个Viewpager,这样手势冲突了怎么办?,放心 在SlidingMenu中有addIgnoredView(viewPager);这个方法,这是告诉SlidingMenu要忽视掉这个view,OK冲突问题解决了,

ps:2,如果我们有几个fragment切换建议使用show,hide方法来切换

//mContent 为当前fragment

public void switchContent(Fragment from, Fragment to) {
if (mContent != to) {
mContent = to;
FragmentTransaction transaction = getSupportFragmentManager()
.beginTransaction();
if (!to.isAdded()) { // 先判断是否被add过
transaction.hide(from).add(R.id.door_content, to)
.commitAllowingStateLoss(); // 隐藏当前的fragment,add下一个到Activity中
} else {
transaction.hide(from).show(to).commitAllowingStateLoss(); // 隐藏当前的fragment,显示下一个
}
}
}

自己都看不下去了。。

0 0