Android中使用android.support.v4.widget.SlidingPaneLayout实现侧滑功能的时候,可能出现滑动屏幕时与SlidingPaneLayout的侧滑发生冲突,查看了帮助文档,发现并没有提供禁止侧滑的方法,所以不得不继承SlidingPanelLayout重写它的方法。直接上代码:

<span style="font-size:14px;">

<span style="font-size:14px;"><span style="font-size:14px;">
import android.content.Context;
import android.support.v4.view.MotionEventCompat;
import android.support.v4.widget.SlidingPaneLayout;
import android.util.AttributeSet;
import android.view.MotionEvent; /**
* Created by long on 2016/3/29.
*/
public class PagerEnabledSlidingPaneLayout extends SlidingPaneLayout { //是否禁止侧滑
private boolean prohibitSideslip = false; public PagerEnabledSlidingPaneLayout(Context context){
super(context, null);
}
public PagerEnabledSlidingPaneLayout(Context context,AttributeSet attrs){
super(context, attrs, 0);
}
public PagerEnabledSlidingPaneLayout(Context context,AttributeSet attrs,int defStyle){
super(context, attrs, defStyle);
} public boolean getProhibitSideslip(){
return prohibitSideslip;
}
//在需要禁止或允许侧滑的地方调用该方法
public void setProhibitSideslip(boolean prohibitSideslip){
this.prohibitSideslip = prohibitSideslip;
} //该方法可以拦截SlidingPaneLayout的触屏事件
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
switch (MotionEventCompat.getActionMasked(ev)){
case MotionEvent.ACTION_MOVE:
if(prohibitSideslip){
return false;
}
}
return super.onInterceptTouchEvent(ev);
} @Override
public boolean onTouchEvent(MotionEvent ev) {
switch (MotionEventCompat.getActionMasked(ev)){
case MotionEvent.ACTION_MOVE:
if(prohibitSideslip){
return false;
}
}
return super.onTouchEvent(ev);
} } </span> </span>

参考:http://www.cnblogs.com/apaojun/p/4288483.html

最新文章

  1. 你的USB设备还安全吗?USB的安全性已从根本上被打破!
  2. HTML5锚点请用id代替name
  3. Linux定时任务系统 Cron
  4. Windows Server 2008 Workstation Converter优化设置
  5. ExtJS笔记4 容器与布局(Layouts and Containers)
  6. Mac下安装HBase及详解
  7. Android 绘制计时器
  8. Linux 设备模型浅析之 uevent 篇(2)
  9. 转:我们是否应该把后端构建为API
  10. javascript动态改变当前页面中元素的状态行为
  11. cocos2d-x(quick-lua)读取csv文件
  12. ZOJ3629 Treasure Hunt IV(找到规律,按公式)
  13. ThinkPHP中处理验证码不显示问题
  14. call、apply的作用和区别是什么?
  15. Tarjan算法(缩点)
  16. Ajax与CORS通信
  17. ios学习--iphone 实现下拉菜单
  18. Aop笔记
  19. Bootstrap3基础 pagination 分页按钮 简单示例
  20. SpringBoot Laravel(artisan serve) MIXPHP简单性能测试

热门文章

  1. solidity 十六进制字符串转十六进制bytes
  2. CryptoZombies学习笔记——Lesson4
  3. avalonJS入门
  4. es6从零学习(三):Class的基本用法
  5. android项目中导入actionbarsherlock 需要注意的地方
  6. 《剑指offer》---丑数
  7. Swift-map()跟flatMap()区别
  8. TCP系列19—重传—9、thin stream下的重传
  9. linux系统中如何进入退出vim编辑器的方法及区别
  10. [CLR via C#]引用类型和值类型