Android开发中滑动冲突非常常见,基本是是嵌套时出现触摸事件被拦截或者无法传递到。
比如SeekBar和Viewpager,SeekBar和ListView等下面是的内容是摘抄于《SeekBar和Viewpager的滑动冲突的解决办法(其他滑动冲突可参考)》的方法,当然我也百度和谷歌过其他的答案,但是这个答案比较简单,因此摘抄于此。
SeekBar和Viewpager的滑动冲突
SeekBar放在其他视图中,手指放在 SeekBar 上面不会立即触发滑动操作,要滑动一段距离或者松开手指才行。
解决方法
在自定义的Seekbar中onTouchEvent中拦截处理,具体代码如下。
public class DomesticSeekDog extends SeekBar { public DomesticSeekDog(Context context) { this(context, null); } public DomesticSeekDog(Context context, AttributeSet attrs) { this(context, attrs, R.attr.seekBarStyle); } public DomesticSeekDog(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override public boolean onTouchEvent(MotionEvent event) { //设置父容器不拦截事件 getParent().requestDisallowInterceptTouchEvent(true); //SeekBar 放在其他视图中,手指放在 SeekBar 上面不会立即触发滑动操作, //要滑动一段距离或者松开手指才行 //测试过,添加如下代码滑动更流畅 if(event.getAction()==MotionEvent.ACTION_DOWN){ MotionEvent evup = MotionEvent.obtain(event); evup.setAction(MotionEvent.ACTION_MOVE); dispatchTouchEvent(evup); evup.recycle(); } return super.onTouchEvent(event); } }
来源
历史上的今天
暂无评论...
随机推荐
鲁迅:两地书(节选)
广平兄:仿佛记得收到来信有好几天了,但是今天才能写回信。“一步步的现在过去”,自然可以比较的不为环境所苦,但“现在的我”中,既然“含有原来的我”,而这“我”又有不满于时代环境之心,则苦痛也依然相续。不过能够随遇而安——即有船坐船云云——则比起幻想太多的人们来,可以稍为安稳,能够敷衍下去而已。总之,...
Android悬浮球
前言上次介绍过创建一个《1像素的悬浮窗口》,这里需要做一个跟魅族一样的悬浮球,部分代码套用之前的。设计悬浮球时考虑全屏和非全屏,以及导航栏在左侧或底部情况等,要不然拖动时存在抖动问题。正文直接入正文,上代码片段。隐藏内容!付费阅读后才能查看!¥3 ¥6多个隐藏块只需支付一次付费阅读...
Android广播在子线程中运行
前言Android中,为了不让主线程阻塞,广播接收器在一些耗时或频繁的任务,可以考虑让其在子线程中运行,当需要刷新UI是才运行在主线程。。记录于此方便自己查阅。正文隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读
严歌苓:读书是生命的另一种存在
一、我关于阅读与写作的记忆我出生在一个书香家庭,父亲虽是作家,但他很少用自己的文学理念影响我。在我的生活学习中,父亲就是一个很客观的教师,是我一生中最好的文学伴侣,最好的交流文学的朋友。父亲常与我沟通他最近读的好书,也会建议我去读。每天早上不管多忙,我都要拿出一小时与父亲喝咖啡,然后谈一谈我最近...
Android系统签名转换为keystore
为啥需要keystore通常,我们在做系统用户开发时,需要给应用加上系统签名,使其拥有系统权限,签名方式可以使用系统源码中的platform.pk8、platform.x509.pem、signapk.jar对应用签名。PS:参考之前的文章《利用signapk.jar工具对apk文件进行签名》...
AS无法创建aidl文件
前言升级最新的Android Studio后创建aidl文件时,提示Requires setting the buildFeatures.aidl to true in the build file意思默认不支持创建,需要改配置文件。记录于此,方便自己查阅。正文下面是解决方式。添加...