实现gridview空白处的点击事件
今天做了一个girdview,要求长按item出现删除按钮,点击空白处取消,长按出现按钮可以,但是点击空白处有问题,如果点击到书籍的空白处 可以用适配器的布局点击事件处理,但是空白区域不是item,不能使用setonitemclick事件解决,而且gridview也不允许直接设置 onclick事件,因此只有重写gridview的touch事件才可以,以下是别人的代码,稍加修改后完成的
自定义gridview
package com.issmobile.numlibrary.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.widget.GridView;
/**
* 自定义GridView
*/
public class CustomGridView extends GridView {
private float mTouchX;
private float mTouchY;
private OnTouchBlankPositionListener mTouchBlankPosListener;
public CustomGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public CustomGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public CustomGridView(Context context) {
super(context);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (mTouchBlankPosListener != null) {
if (!isEnabled()) {
return isClickable() || isLongClickable();
}
int action = event.getActionMasked();
float x = event.getX();
float y = event.getY();
final int motionPosition = pointToPosition((int) x, (int) y);
if (motionPosition == INVALID_POSITION) {
switch (action) {
case MotionEvent.ACTION_DOWN:
mTouchX = x;
mTouchY = y;
mTouchBlankPosListener.onTouchBlank(event);
break;
case MotionEvent.ACTION_MOVE:
if (Math.abs(mTouchX - x) > 10
|| Math.abs(mTouchY - y) > 10) {
mTouchBlankPosListener.onTouchBlank(event);
}
break;
case MotionEvent.ACTION_UP:
mTouchX = 0;
mTouchY = 0;
mTouchBlankPosListener.onTouchBlank(event);
break;
}
}
}
return super.onTouchEvent(event);
}
/**
* 设置GridView的空白区域的触摸事件
*
* @param listener
*/
public void setOnTouchBlankPositionListener(
OnTouchBlankPositionListener listener) {
mTouchBlankPosListener = listener;
}
public interface OnTouchBlankPositionListener {
void onTouchBlank(MotionEvent event);
}
}
本文转自 一点点征服 博客园博客,原文链接:http://www.cnblogs.com/ldq2016/p/5819164.html,如需转载请自行联系原作者
实现gridview空白处的点击事件相关推荐
- 遍历指定目录下的图片文件 显示在gridview 并添加点击事件
先上图: gridview布局 <?xml version="1.0" encoding="utf-8"?> <GridView xmlns: ...
- 程序猿媛:滑动翻页+区域点击事件
Android GridView 滑动翻页+区域点击事件 如有转载,请保留原文地址:"http://www.cnblogs.com/LuoYer/p/3409988.html",谢 ...
- 程序猿媛一:Android滑动翻页+区域点击事件
2019独角兽企业重金招聘Python工程师标准>>> 滑动翻页+区域点击事件 ViewPager+GrideView 声明:博文为原创,文章内容为,效果展示,思路阐述,及代码片段. ...
- 从源码角度入手实现RecyclerView的Item点击事件
转载请注明出处:http://www.cnblogs.com/cnwutianhao/p/6758373.html RecyclerView 作为 ListView 和 GridView 的替代产物, ...
- click事件在什么时候出发_剖析setTimeout和click点击事件的触发顺序
下面是一段非常简单的JavaScript代码 dianji setTimeout(function () { alert('timer handler') }, 2000) function test ...
- android 控件覆盖关系,安卓子控件抢占父控件点击事件或者焦点问题
开发中很常见的一个问题,项目中的lListview不仅仅是简单的文字,常常需要自己定义listview,自己的Adapter去继承BaseAdapter,在adapter中按照需求进行编写,问题就出现 ...
- listview 模仿用户点击事件。
正确的方法 gvFlow.post(new Runnable() {@Overridepublic void run() {gvFlow.performItemClick(gvFlow.getChil ...
- Android开发笔记(四十三)点击事件
按钮点击 常用按钮点击 1.单击事件,主要用于Button和ImageButton控件,布局视图与TextView.ImageView控件用的也比较多.相关类名与方法说明如下: 监听器类名 : Vie ...
- android 表格控件点击事件,Android零基础入门|RecyclerView点击事件处理
原标题:Android零基础入门|RecyclerView点击事件处理 前面两期学习了RecyclerView的简单使用,并为其item添加了分割线.在实际运用中,无论是List还是Grid效果,基本 ...
最新文章
- C语言编译全过程剖析
- oc58--Category注意事项
- CentOs7 无可用“Chinese Support“
- 【TCP/IP详解 卷一:协议】第十八章 TCP连接 的建立与终止 (2)其余内容
- vue中router-link绑定click失效
- 服务器高并发下出现大量的time wait的解决办法
- android中自定义的dialog中的EditText无法弹出输入法解决方案
- Python + Selenium 自动发布文章(一):开源中国
- linux kernel map
- 【arp】关于arp和arping命令的使用
- Golang 标准库 tips之waitgroup详解
- 书摘—松下幸之助全传
- Ch8 电路噪声学习笔记(一)baker 《CMOS Circuit Design, Layout, and Simulation》
- 基于MODBUS通讯协议的酒厂温湿度、光照度数据采集系统的设计与实现
- 重装系统Win7步骤和详细教程
- 用HTML+CSS做一个漂亮简单大学生校园班级网页(web前端期末大作业)
- 头歌 Linux 远程联机服务(二)- Rsh服务器
- 10电脑睡眠后自动关机怎么回事 win_Win10睡眠失效变成关机怎么办_win10睡眠变成自动关机的修复步骤-win7之家...
- vue 图片放大、缩小、旋转、滚轮操作图片放大缩小
- 【Cartographer参数详解,调参,降低计算量调优笔记记录】