1、响应事件的区别:

gridview的item是textView的时候,gridview的itemonclick事件可以正常相应,但是换了Button后不能,原因如下:

public class Button extends TextView {
    public Button(Context context) {
        this(context, null);
    }

public Button(Context context, AttributeSet attrs) {
        this(context, attrs, com.android.internal.R.attr.buttonStyle);
    }

public Button(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
所以,主要的猫腻还是在com.android.internal.R.attr.buttonStyle这个里面,查看这个xml文件,Button设置多了两个属性如下:
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
所以我们要在代码里面把这两个属性设为false,这样就可以响应GridView的onItemClick方法了,但是一定要注意,不管是Button,还是TextView,只要设置了onClick() 的话,那么OnItemClick()就不会被执行(以上的内容都是基于一个GridView或者是ListView的每个Item只有一项,要不是Button,要不是TextView,不是这种情况的,上面的就只能参考一下了)

2、按下系统的效果去除:

textView按下的时候,系统会有一个蓝色的矩形阴影效果,对于圆角的设计来说,不好看,这个阴影其实是你点击gridview的item产生的,listview也是这样,所以去掉这个效果,看了一采取以下几种方式:

取消GridView/ListView item被点击时的效果

方法一,在控件被初始化的时候设置

gridView.setSelector(new ColorDrawable(Color.TRANSPARENT));
listView.setSelector(new ColorDrawable(Color.TRANSPARENT));

方法二,在布局文件中设置listSelector属性

<GridView
android:listSelector="@android:color/transparent"
android:numColumns="auto_fit"
android:columnWidth="50dp"
android:stretchMode="spacingWidth"
android:layout_weight="1.0"
android:layout_height="0dip"
android:layout_width="match_parent"/> <ListView
android:listSelector="@android:color/transparent"
android:layout_height="match_parent"
android:layout_width="match_parent"/>

当然也可以定制化自己想要的效果。

推荐使用方法二,解耦逻辑代码与布局文件。

gridview里item是textView、Button单击事件相应,以及按下效果的取去除的更多相关文章

  1. 【转】为ListView每个Item上面的按钮添加事件

    原文网址:http://blog.csdn.net/qq435757399/article/details/8256453 1.先看下效果图:        在这里仅供测试,我把数据都写死了,根据需要 ...

  2. RecyclerView的Item的单击事件

    RecyclerView 的每个Item的点击事件并没有像ListView一样封装在组件中,需要Item的单击事件时就需要自己去实现,在Adapter中为RecyclerView添加单击事件参考如下: ...

  3. 奇葩问题:ListView中Item与Item中的Button不能单击问题

    android中ListView是一个经常要用到的一个组件,用到该组件时经常会碰到ListView的Item和Item中的Button不能单击的问题. 本人在使用时同样也遇到过这样的情况,共有三种情况 ...

  4. RecyclerView onItemClick button和布局都有单击事件时的处理方式

    RecyclerView为了给开发人员提供更大的自由度.没有默认的提供onItemClick接口. 网上有一种比較简单的实现方式 , 适用于不须要针对item里面某个button做特殊处理的情况 我眼 ...

  5. RecyclerView 的 Item 的单击事件

    RecyclerView 的每个Item的点击事件并没有像 ListView 一样封装在组件中,需要 Item 的单击事件时就需要自己去实现,在 Adapter 中为RecyclerView 添加单击 ...

  6. ListView item 中TextView 如何获取长按事件

    昨天晚上小伙伴突然来信, ListView item中嵌套的TextView 无法获取长按事件 从前从来没有仔细留意过, coding后发现...果然没什么动静 而且没有合适的API让我调用获取Tex ...

  7. GridView中添加行单击事件.md

    [toc] 1.使用说明 1.方法来源 该方法主要参考StackOverflow上面的答案和下面这篇文章 http://www.codeproject.com/Articles/15677/Click ...

  8. ListView点击事件失效(item里面有button按钮控件)解决方法

    ListView点击事件失效解决方法: 一般出现这个情况,就是你的item里面有按钮的点击事件,你的item里面有button控件,button控件是抢占焦点的,只要在你的item布局里面这样子写就可 ...

  9. 对于多个button要在同一个监听器中实现自己的单击事件的方法小诀窍。

    在网上的一些教程中往往是把一个button加入多个监听器,却非常少有人会把多个button在同一个监听器中去实现他们的单击事件,并且这杨的事实上是非常有用的,比方说在制作一个简单的计算器是就须要0-9 ...

随机推荐

  1. Compress a folder using powershell

    There are many ways to compress a folder using powershell: Method 1: Using System.IO.Compression and ...

  2. UAC绕过思路(未完)

    ---恢复内容开始--- What is UAC?

  3. java OPENCV 连通域, Imgproc.findContours 例子,参数说明

    http://stackoverflow.com/questions/29491669/real-time-paper-sheet-detection-using-opencv-in-android/ ...

  4. protobuf与json互相转换

    Java http://code.google.com/p/protobuf-java-format/ maven <dependency> <groupId>com.goog ...

  5. 为什么MVC不是一种设计模式? ---比较Backbone和Ext4.x在MVC实现上的差异

    为什么MVC不是一种设计模式? ---比较Backbone和Ext4.x在MVC实现上的差异 大漠穷秋 前言 圣人云:不想做妈咪的小姐不是好码农. 每一个码农的心中都有一个终极理想,那就是有一天不用再 ...

  6. 转 Android 编程下两种方式注册广播的区别

    常驻型广播 常驻型广播,当你的应用程序关闭了,如果有广播信息来,你写的广播接收器同样的能接收到,它的注册方式就是在你应用程序的AndroidManifast.xml 中进行注册,这种注册方式通常又被称 ...

  7. 让shell 变得容易理解

    1.重建你的语义模型(简单语义模型)2.变量,参数和方法命名3.测试用例4.足够的组块

  8. Struts+Spring+Hibernate的Web应用执行过程

    struts1和spring有两种整合的方法  一种是action和spring bean映射:一种是将action交给spring初始化 第一种方式:访问.do的URL->tomcat接收到r ...

  9. 简单的划分数问题<划分问题>

    将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有多少种不同的分法. 思路: 动态规 ...

  10. Android CTS 测试总结【转】

    Android CTS 测试总结[转] 最近一直在做Android兼容性测试,根据Android官网给出的android-cts-manual 配置好了device后,开始测试. 首先配置软件环境: ...