Made nestable scroll view to solve selfsame problem

pull/14/head
Tim Su 13 years ago
parent 198dd3e8cf
commit a27e44f8e7

@ -7,7 +7,7 @@
android:layout_height="fill_parent"
android:orientation="vertical" >
<ScrollView
<com.todoroo.astrid.ui.NestableScrollView
android:id="@+id/edit_scroll"
style="@style/Content_EditScroll"
android:layout_width="fill_parent"
@ -112,7 +112,7 @@
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
</ScrollView>
</com.todoroo.astrid.ui.NestableScrollView>
<!-- Footer -->

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

@ -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;
}
}
Loading…
Cancel
Save