我有一个带有翻转动画的自定义ViewSwitcher。问题在于当前未显示的视图(包含子按钮)正在拦截活动视图中的点击。我尝试将可见性设置为不可见或不可见(无效),我尝试遍历所有子视图并设置setClickable(false),但无效。
也许我在错误的地方应用了更改?以下是我的代码的相关部分。
public class ViewFlip3D extends ViewSwitcher {
// switches views
public void flip() {
float centerX = getWidth() / 2.0f;
float centerY = getHeight() / 2.0f;
Flip3D animOut = new Flip3D(-90, 0, centerX, centerY);
animOut.setDuration(500);
animOut.setInterpolator(new AccelerateInterpolator());
animOut.setFillAfter(true);
Flip3D animIn = new Flip3D(0, 90, centerX, centerY);
animIn.setDuration(500);
animIn.setInterpolator(new DecelerateInterpolator());
animIn.setFillAfter(true);
animIn.setAnimationListener(new ShowNextView(this, animOut));
ViewGroup view = (ViewGroup) getCurrentView();
// Disable clicks here!
// like: view.DisableClicksFromAllChildViews();
view.startAnimation(animIn);
}
private final class ShowNextView implements Animation.AnimationListener {
public void onAnimationEnd(Animation animation) {
container.showNext();
ViewGroup view = (ViewGroup) container.getCurrentView();
view.startAnimation(flipin);
// Enable clicks here!
// like: view.EnableClicksFromAllChildViews();
}
}
}
最佳答案
如果您希望不影响视图,请在之后删除填充或调用clearAnimation。
如果这些都不满足您的需求,则可以递归循环子项并将clickable设置为false。
关于android - android:禁用ViewSwitcher非 Activity subview 中的点击,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4697343/