码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2014-11-06 16:51:08      阅读:384      评论:0      收藏:0      [点我收藏+]

标签:android   style   blog   color   ar   使用   java   sp   strong   

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单击事件相应,以及按下效果的取去除

标签:android   style   blog   color   ar   使用   java   sp   strong   

原文地址:http://www.cnblogs.com/lucky-star-star/p/4078743.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!