ギャラリーとそのアイテムのカスタム レイアウトがあります。ボタンはそれぞれ2つ付いています。項目ビューに触れるたびに、そのボタンが押されます。
ボタンをクリックすると、別のボタンは onPressed 状態を受け取りませんが、近くをクリックすると両方とも受け取ります。
触れられていないボタンの状態が変化しないようにするにはどうすればよいですか?
ボタンがあるコンテナーとしてオーバーライドされたクラスが既にあります。したがって、Luksprog によって言及された方法で setPressed() をオーバーライドします
public class GalleryItem extends FrameLayout {
@Override
public void setPressed(boolean pressed) {
return;
}
}
Buttons
アイテム レイアウトをButton
以下のカスタム クラスに置き換えて、動作が引き続き存在するかどうかを確認します。
public class SpecialButton extends Button {
// implement constructors
@Override
public void setPressed(boolean pressed) {
if (pressed && (getParent() instanceof View) && ((View) getParent()).isPressed()) {
return;
}
super.setPressed(pressed);
}
}