`
yanghaoli
  • 浏览: 284142 次
社区版块
存档分类
最新评论

点击ListView的item时,避免导致item中的按钮的背景被改动的解决方案

 
阅读更多

给listview里面的button设置selector后,当给listview设置listview.setOnitemClickedListener()的时候,里面的button会有press的效果。

现有一种解决方法,使用自定义的Button,判断他的父控件是否pressed,如果是就把这个事件消耗掉,不向下传递即可

代码如下:

 1 import android.content.Context;
 2 import android.util.AttributeSet;
 3 import android.view.View;
 4 import android.widget.Button;
 5 
 6 public class FixedListButton extends Button {
 7 
 8     public FixedListButton(Context context, AttributeSet attrs, int defStyle) {
 9         super(context, attrs, defStyle);
10         // TODO Auto-generated constructor stub
11     }
12 
13     public FixedListButton(Context context, AttributeSet attrs) {
14         super(context, attrs);
15         // TODO Auto-generated constructor stub
16     }
17 
18     public FixedListButton(Context context) {
19         super(context);
20         // TODO Auto-generated constructor stub
21     }
22 
23     @Override
24     public void setPressed(boolean pressed) {
25         // TODO Auto-generated method stub
26         if (pressed && getParent() instanceof View
27                 && ((View) getParent()).isPressed()) {
28             return;
29         }
30         super.setPressed(pressed);
31     }
32     
33 }

 

 

2
4
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics