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