@Override public boolean onPreDraw() { mViewPager.getViewTreeObserver().removeOnPreDrawListener(this); // Figure out where the thumbnail and full size versions are, relative // to the screen and each other int[] screenLocation = new int[2]; mViewPager.getLocationOnScreen(screenLocation); thumbnailLeft = thumbnailLeft - screenLocation[0]; thumbnailTop = thumbnailTop - screenLocation[1]; runEnterAnimation(); return true; } });
@Override public boolean dispatchTouchEvent(MotionEvent ev) { Fragment listFragment = getSupportFragmentManager().findFragmentByTag( "android:switcher:" + R.id.pager + ":" + (mainPager.getCurrentItem())); mainPager.getChildAt(mainPager.getCurrentItem()); if (listFragment == null) return super.dispatchTouchEvent(ev); ViewPager embeddedPager = (ViewPager) listFragment.getView().findViewById(R.id.videopager); if (embeddedPager != null) { int[] position = new int[2]; embeddedPager.getLocationOnScreen(position); if (ev.getY() > position[1] && ev.getY() < position[1] + embeddedPager.getHeight()) { mainPager.requestDisallowInterceptTouchEvent(true); if (embeddedPager.getScrollX() % embeddedPager.getWidth() != 0) { ListView listView = (ListView) listFragment.getView().findViewById( android.R.id.list); listView.requestDisallowInterceptTouchEvent(true); } } } return super.dispatchTouchEvent(ev); }