您的位置:首页 > 其它

关于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>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: