SettingBar的点击事件拦截

Posted ly570

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SettingBar的点击事件拦截相关的知识,希望对你有一定的参考价值。

接下来我们再来看另外一个案例,正如上面界面上显示的两个条目,车辆选择和始发地点选择,他们都有一个共同的特点就是都有共同的标题,内容和右剪头按钮,这种情况下我们都会把它封装成一个组合的自定义View来显示它,我们现在来看一下它的

效果图:

用户的需求是这样的: 当用户在点击车辆选择的条目的时候他会跳转到另外一个页面上去,而用户在事发地点上点击请输入的时候是可以输入文字信息的,也就是说有两种需求,一种处于不可编辑状态点击整个条目要进行事件拦截,另外一种处于可编辑状态事件,点击请输入需要弹出软键盘可输入文字,也就是点击的时候不需要拦截可直接传递给子View EditText,很显然我们的自定义设置条目需要一个是否可以编辑的开关,当处于不可编辑的状态的时候,点击的时候拦截该事件,当处于可编辑状态的时候,事件可以继续往下分发。

关键代码:

public class SettingBarView extends RelativeLayout (http://www.amjmh.com)
@Override
public boolean onInterceptTouchEvent(MotionEvent ev)
//当处于不可编辑状态的时候拦截该事件,否则该事件就继续往下分发
return !isEdit;

@Override
public boolean onTouchEvent(MotionEvent event)
//当拦截该事件的时候就把它分发给自己的根View,响应全局的点击事件
return layoutSettingBar.onTouchEvent(event);


1
2
3
4
5
6
7
8
9
10
11
12
好了,今天的两个小案例就讲完了,需求很简单,通过这两个案例的实操,我们进一步的加深了android事件分发机制的理解,项目案例的完整代码我已经分享到github上了,使用过程中有任何问题,请在文章下方留言,下一篇我们讲一个更加复杂的案例,来进一步帮助大家理解事件分发机制在实战开发当中的应用。

以上是关于SettingBar的点击事件拦截的主要内容,如果未能解决你的问题,请参考以下文章

app内嵌vue h5,安卓和ios拦截H5点击事件

父控件的点击事件被Recyclerview拦截

listview嵌套 子控件点击事件被拦截怎么做

iOS:从顶视图到底视图拦截点击手势事件

Android 如何拦截用户频繁操作(比如点击事件)

Android 如何拦截用户频繁操作(比如点击事件)