/** * Copyright (c) 2012 Todoroo Inc * * See the file "LICENSE" for the full license governing this code. */ package com.todoroo.astrid.ui; import android.content.Context; import android.graphics.Rect; import android.util.AttributeSet; import android.view.MotionEvent; import android.view.View; import android.widget.ScrollView; public class NestableScrollView extends ScrollView { private int[] scrollableViews = new int[0]; public NestableScrollView(Context context, AttributeSet attrs) { super(context, attrs); } @Override public boolean onInterceptTouchEvent(MotionEvent event) { if (scrollableViews != null) { for (int i = 0; i < scrollableViews.length; i++) { View view = findViewById(scrollableViews[i]); if (view != null) { Rect rect = new Rect(); view.getHitRect(rect); if (rect.contains((int) event.getX(), (int) event.getY())) { return false; } } } } return super.onInterceptTouchEvent(event); } public void setScrollabelViews(int[] views) { this.scrollableViews = views; } }