Disable All Touch Screen Interactions While Animation Disable All Touch Screen Interactions While Animation android android

Disable All Touch Screen Interactions While Animation


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);


Easy way to implement that is add transaperent layout over it (add it in your xml fill parent height and width).

In the animation start: transaparentlayout.setClickable(true);

In the animation end: transaparentlayout.setClickable(false);


answer to this issue

for (int i = 1; i < layout.getChildCount(); i++) { TableRow row = (TableRow) layout.getChildAt(i); row.setClickable(false);

selected all the rows of the table layout which had all the views and disabled them