android:禁用ViewSwitcher的非活动子视图中的点击次数

时间:2011-01-15 00:38:37

标签: android click

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

1 个答案:

答案 0 :(得分:0)

删除后面的填充或在想要查看时调用clearAnimation。

如果这些都不符合您的需求,您可以递归循环子项并将clickable设置为false。