Disable All Touch Screen Interactions While Animation

android, android-widget, clickable

Solution

In your Activity, you can override `onTouchEvent` and always `return true;` to indicate you are handling the touch events.

You can find the documentation for that function there.

Edit Here is one way you can disable touch over the whole screen instead of handling every view one by one... First change your current layout like this:

<FrameLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    < .... put your current layout here ... />

    <TouchBlackHoleView
        android:id="@+id/black_hole"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
</FrameLayout>

And then define your custom view with something like this:

public class TouchBlackHoleView extends View {
    private boolean touch_disabled=true;
    @Override
    public boolean onTouchEvent(MotionEvent e) {
        return touch_disabled;
    }
    public disable_touch(boolean b) {
        touch_disabled=b;
    }
}

Then, in the activity, you can disable the touch with

(TouchBlackHoleView) black_hole = findViewById(R.id.black_hole);
black_hole.disable_touch(true);

And enable it back with

black_hole.disable_touch(false);

Problem

I wish to disable all the touch screen interactions while an animation is being displayed. I don't wish to use the `setClickable()` method on the buttons at the start or end of the animation because there are a large number of buttons. Any suggestions?

Original source