完美解决SlidingMenu侧滑菜单与ViewPager冲突问题
2015-12-17 13:32:13 By: shinyuu
刚刚到一家新公司、公司准备启动一项目 工都名车、个人感觉可以使用SlidingMenu开源库来做首页的展示、首页难免会有广告轮播的ViewPager、发现在ViewPager上面滑动的时候SlidingMenu的菜单也被打开了、这两个侧滑整个发生了冲突、看了一下SlidingMenu的源代码发现它里面有一个ViewPagerActivity的例子、但在这个例子中、ViewPager只支持单向滑动、我们只需要稍作一点修改、即可实现双向滑动、解决SlidingMenu的冲突问题
Activity OnCreate创建Menu的代码
// configure the SlidingMenu mLeftMenu = new SlidingMenu(this); mLeftMenu.setMode(SlidingMenu.LEFT); // 设置触摸屏幕的模式 mLeftMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); mLeftMenu.setShadowWidthRes(R.dimen.common_left_right_margins); mLeftMenu.setShadowDrawable(R.drawable.shadow); // 设置滑动菜单视图的宽度 mLeftMenu.setBehindOffsetRes(R.dimen.slidingmenu_offset); // 设置渐入渐出效果的值 mLeftMenu.setFadeDegree(0.35f); /** * SLIDING_WINDOW will include the Title/ActionBar in the content * section of the SlidingMenu, while SLIDING_CONTENT does not. */ // 把滑动菜单添加进所有的Activity中,可选值SLIDING_CONTENT , SLIDING_WINDOW mLeftMenu.attachToActivity(this, SlidingMenu.SLIDING_CONTENT); // 为侧滑菜单设置布局 mLeftMenu.setMenu(R.layout.leftmenu);
OnPageChangeListener代码如下
mViewPager.addOnPageChangeListener(new OnPageChangeListener() { public void onPageSelected(int position) { switch (position) { case 0: mLeftMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN); break; default: mLeftMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_MARGIN); break; } } public void onPageScrolled(int arg0, float arg1, int arg2) {} public void onPageScrollStateChanged(int arg0) {} });
以上方法就是我解决在ViewPager上面滑动的时候SlidingMenu的菜单也被打开的冲突问题
若资源对你有帮助、浏览后有很大收获、不妨小额打赏我一下、你的鼓励是维持我不断写博客最大动力
想获取DD博客最新代码、你可以扫描下方的二维码、关注DD博客微信公众号(ddblogs)
或者你也可以关注我的新浪微博、了解DD博客的最新动态:DD博客官方微博(dwtedx的微博)
如对资源有任何疑问或觉得仍然有很大的改善空间、可以对该博文进行评论、希望不吝赐教
为保证及时回复、可以使用博客留言板给我留言: DD博客留言板(dwtedx的留言板)
感谢你的访问、祝你生活愉快、工作顺心、欢迎常来逛逛