ListViewのitemをクリックすると、itemのボタンの背景が変更されることを避けるソリューション
4375 ワード
リストビュー内のbuttonにselectorを設定すると、リストビューにリストビューを設定します.setOnitemClickedListener()の場合、中のbuttonはpressの効果があります.
既存の解決策は、カスタムButtonを使用して、親コントロールがpressedであるかどうかを判断し、このイベントを消費し、下に渡さなければよいということです.
コードは次のとおりです.
既存の解決策は、カスタム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 }