diff --git a/astrid/res/layout/task_edit_activity.xml b/astrid/res/layout/task_edit_activity.xml index 78d331a26..0d01b4a30 100644 --- a/astrid/res/layout/task_edit_activity.xml +++ b/astrid/res/layout/task_edit_activity.xml @@ -7,7 +7,7 @@ android:layout_height="fill_parent" android:orientation="vertical" > - - + diff --git a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java index 1cd079859..7743d49f6 100755 --- a/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java +++ b/astrid/src/com/todoroo/astrid/activity/TaskEditFragment.java @@ -95,6 +95,7 @@ import com.todoroo.astrid.ui.EditNotesControlSet; import com.todoroo.astrid.ui.EditTitleControlSet; import com.todoroo.astrid.ui.HideUntilControlSet; import com.todoroo.astrid.ui.ImportanceControlSet; +import com.todoroo.astrid.ui.NestableScrollView; import com.todoroo.astrid.ui.NestableViewPager; import com.todoroo.astrid.ui.ReminderControlSet; import com.todoroo.astrid.ui.TaskEditMoreControls; @@ -429,6 +430,8 @@ public final class TaskEditFragment extends Fragment implements mPager = (NestableViewPager) getView().findViewById(R.id.pager); mPager.setAdapter(mAdapter); mPager.setScrollabelViews(webServices.getScrollableViews()); + ((NestableScrollView)getView().findViewById(R.id.edit_scroll)). + setScrollabelViews(webServices.getScrollableViews()); mIndicator = (TabPageIndicator) getView().findViewById( R.id.indicator); diff --git a/astrid/src/com/todoroo/astrid/ui/NestableScrollView.java b/astrid/src/com/todoroo/astrid/ui/NestableScrollView.java new file mode 100644 index 000000000..8590dbef6 --- /dev/null +++ b/astrid/src/com/todoroo/astrid/ui/NestableScrollView.java @@ -0,0 +1,29 @@ +package com.todoroo.astrid.ui; + +import android.content.Context; +import android.util.AttributeSet; +import android.view.MotionEvent; +import android.view.View; +import android.view.ViewParent; +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) { + for(int i = 0; i < scrollableViews.length; i++) { + View view = findViewById(scrollableViews[i]); + if (view instanceof ViewParent) + ((ViewParent)view).requestDisallowInterceptTouchEvent(true); + } + return super.onInterceptTouchEvent(event); + } + + public void setScrollabelViews(int[] views) { + this.scrollableViews = views; + } +}