关于AdapterView点击空白处事件
2016-11-08 15:57
239 查看
在项目中遇到GridView在item不满时,要求点击空白处也能响应某些事件,发现AdapterView是没有OnClick事件的;
解决方案是重写他的onTouch事件,来判断不是他的item,从而实现空白处点击事件。
<span style="font-size:18px;"> @Override
public boolean onTouchEvent(MotionEvent ev) {
if (mTouchInvalidPosListener == null) {
return super.onTouchEvent(ev);
}
if (!isEnabled()) {
// A disabled view that is clickable still consumes the touch
// events, it just doesn't respond to them.
return isClickable() || isLongClickable();
}
if (ev.getActionMasked() == MotionEvent.ACTION_UP) {
//判断当前所在位置是否是他的item位置pos
final int motionPosition = pointToPosition((int) ev.getX(), (int) ev.getY());
if (motionPosition == INVALID_POSITION) {
super.onTouchEvent(ev);
return mTouchInvalidPosListener.clickInvalidPosition(ev.getActionMasked());
}
}
return super.onTouchEvent(ev);
}
/**
* 点击空白区域的响应事件
*/
public interface OnClickInvalidPositionListener {
boolean clickInvalidPosition(int pos);
}</span>
解决方案是重写他的onTouch事件,来判断不是他的item,从而实现空白处点击事件。
<span style="font-size:18px;"> @Override
public boolean onTouchEvent(MotionEvent ev) {
if (mTouchInvalidPosListener == null) {
return super.onTouchEvent(ev);
}
if (!isEnabled()) {
// A disabled view that is clickable still consumes the touch
// events, it just doesn't respond to them.
return isClickable() || isLongClickable();
}
if (ev.getActionMasked() == MotionEvent.ACTION_UP) {
//判断当前所在位置是否是他的item位置pos
final int motionPosition = pointToPosition((int) ev.getX(), (int) ev.getY());
if (motionPosition == INVALID_POSITION) {
super.onTouchEvent(ev);
return mTouchInvalidPosListener.clickInvalidPosition(ev.getActionMasked());
}
}
return super.onTouchEvent(ev);
}
/**
* 点击空白区域的响应事件
*/
public interface OnClickInvalidPositionListener {
boolean clickInvalidPosition(int pos);
}</span>
相关文章推荐
- Cocos2d-x中CCTableView关于点击空白区域依然会响应单元格事件
- 关于在里的按钮点击之后不执行OnItemCommand事件,欢迎讨论
- 解决 点击ListView空白处事件不响应问题
- 关于启动Activity之间的及普通按钮的点击事件
- 关于页面上某些点击事件无效的问题
- 关于页面上某些点击事件无效的问题
- 关于登录时输入信息以后敲回车触发登录按钮的点击事件
- Android中点击空白区域控件自动隐藏(事件传递机制中的一个小例子)
- 关于ListView中控件点击事件与Item点击事件冲突的问题
- ios 关于 通过加载 xib 生成的view,调用 addsubviews,sub view的按钮 不相应点击事件的 问题
- Android UI系列:关于按钮点击事件
- jquery实现点击空白的事件
- 关于对话框上的按钮不响应点击事件的问题
- 关于BUTTON模拟FILE控件的点击事件的一揽子解决方案
- 关于在点击F7的放大镜前的事件监听
- 关于点击事件
- 关于捕获用户何时点击window.onbeforeunload的取消事件
- highcharts报表关于series点击文本或者符号,都有触发事件或者都没有触发事件
- Cocos2d-x 中CCTableView and CCTableViewCell点击空白区域依然会响应单元格事件及reloadData()问题
- Flex里监听mouseDownOutside事件解决弹出窗口点击空白关闭功能