0

我有一个画廊和它的项目的自定义布局。每个上有两个按钮。每次我触摸一个项目视图时,它的按钮都会被按下。

当我单击一个按钮时,另一个按钮不会收到 onPressed 状态,但是当我单击附近时,它们都会收到它。

如何防止更改未触摸按钮的状态?

4

2 回答 2

0

用下面的自定义类替换您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);
    }

}
于 2012-11-29T12:55:42.047 回答
0

我已经有一个被覆盖的类作为按钮所在的容器。所以 Luksprog 提到的方式我覆盖了 setPressed()

public class GalleryItem extends FrameLayout {
    @Override
    public void setPressed(boolean pressed) {

        return;
    }

}
于 2012-12-14T17:08:37.650 回答