Listviewのitemクリックイベントで中のButtonも押す効果が出ます

1064 ワード

リストビュー内のbuttonにselectorを設定すると、リストビューにリストビューを設定します.setOnitemClickedListener()の場合、中のbuttonはpressの効果があり、listviewのonItemClickedListener()listviewを放棄する2つの案がある.setOnItemClickedListener(null); 2:カスタムButtonを使って、彼の親コントロールがpressかどうかを判断し、このイベントを消費して、下に渡さなければいい.
使用可能なコードは次のとおりです.
package com.audiocn.kalaok.widget;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.widget.Button;
public class FixedListButton extends Button {
public FixedListButton(Context context) {
super(context);
}
public FixedListButton(Context context, AttributeSet attrs) {
super(context, attrs);
}
public FixedListButton(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void setPressed(boolean pressed) {
if (pressed && getParent() instanceof View
&& ((View) getParent()).isPressed()) {
return;
}
super.setPressed(pressed);
}
}