解决两侧SldingMenu+ViewPager手势冲突问题
来源:互联网 发布:cfd模拟软件 编辑:程序博客网 时间:2024/04/29 06:21
这里SlidingMenu用的是github 的开源项目jfeinstein10/SlidingMenu ,单侧的SldingMenu配合ViewPager在demo中有解决方案。
这里通过修改一点源码解决问题。
首先找到CustomAboveView.java里的determineDrag方法,
在某个if条件里添加一个方法determineDragValid,如图
方法相关内容如下:
private boolean isLeftEnable=true;
private boolean isRightEnable=true;
public void setLeftEnable(boolean isLeftEnable) {
this.isLeftEnable = isLeftEnable;
}
public void setRightEnable(boolean isRightEnable) {
this.isRightEnable = isRightEnable;
}
private boolean determineDragValid(float dx)
{
return 1!=mCurItem||((dx >=0&&isLeftEnable)||(dx<=0&&isRightEnable));
}
除了determineDragVaild ,还添加了两个set方法,这两个方法分别用来控制 启用/禁用 左/右 侧抽屉。
然后在找到SlidingMenu.java ,添加两个转发方法
public void setLeftEnable(boolean b) {
mViewAbove.setLeftEnable(b);
}
public void setRightEnable(boolean b) {
mViewAbove.setRightEnable(b);
}
然后就可以用上面添加的方法解决冲突问题了
在ViewPager的OnPageChangeListener里面onPageSelect方法里面判断,注意在此之前要setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN)
@Override
public void onPageSelected(int position) {
if (0==position)
{
slidingMenu.setLeftEnable(true);
slidingMenu.setRightEnable(false);
}else if (lastPosition==position)
{
slidingMenu.setLeftEnable(false);
slidingMenu.setRightEnable(true);
}else{
slidingMenu.setLeftEnable(false);
slidingMenu.setRightEnable(false);
}
}
如果是仿网易新闻布局,那么在点击抽屉菜单里的某项切换到不同栏目时,依旧会发生SlidingMenu冲突问题,这个解决方案是在每次切换Fragment时,重新设置SldingMenu 左右侧菜单状态。
如果还有其他更好的解决方法,欢迎指教。
- 解决两侧SldingMenu+ViewPager手势冲突问题
- 如何解决listView或scrollView+viewpager手势冲突的问题
- 解决手势冲突问题
- Android ViewPager和Slidingmenu手势冲突问题
- 两个ViewPager手势冲突的问题
- 解决ViewPager嵌套ViewPager滑动冲突问题
- 解决ViewPager嵌套ViewPager滑动冲突问题
- ViewPager与子View手势触摸冲突解决
- 解决手势与按钮冲突问题
- iOS中解决各种手势冲突问题
- 解决Viewpager与listivew冲突问题
- 解决Gallery与viewpager滑动冲突问题
- 解决ScrollView嵌套viewpager冲突问题
- 解决侧滑与viewpager冲突问题。
- 解决ScrollView嵌套viewpager的冲突问题
- ViewPager和ImageView手势冲突
- 自定义ViewPager拦截手势,防止手势冲突
- 解决viewpager嵌套viewpager和其他view 冲突问题
- 电脑清理软件
- 武大邀请赛网络赛 I Twenty-four
- android基础入门SQLite数据库操作(15)
- ios网络数据处理
- HDU-#1010 Tempter of the Bone(DFS+剪枝)
- 解决两侧SldingMenu+ViewPager手势冲突问题
- 笔试题之 ip 快速查找之续
- oracle基本操作语句总结
- 泛化基础-模板的偏特化
- iOS中UITableView的编辑模式
- 接口继承
- Java 专业人士必备的书籍和网站列表
- 数据库索引是什么,有什么用,怎么用
- ArcGIS技术交流群及官方微博