我有一个带有翻转动画的自定义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/

10-08 21:24