我有一个画廊和它的项目的自定义布局。每个上有两个按钮。每次我触摸一个项目视图时,它的按钮都会被按下。
当我单击一个按钮时,另一个按钮不会收到 onPressed 状态,但是当我单击附近时,它们都会收到它。
如何防止更改未触摸按钮的状态?
用下面的自定义类替换您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);
}
}
我已经有一个被覆盖的类作为按钮所在的容器。所以 Luksprog 提到的方式我覆盖了 setPressed()
public class GalleryItem extends FrameLayout {
@Override
public void setPressed(boolean pressed) {
return;
}
}