2012-12-18 3 views
1

Я попытался выяснить способ решения этой проблемы с помощью viewpager, но я не смог сделать это полностью.Как создать горизонтальный вид прокрутки с помощью функции ViewPager?

Вот задачи я присвоенные решить:

enter image description here

  • Создайте представление, которое позволяет для постраничной * (Раскрыты с помощью View пейджера и обмен между двумя фрагментами)
  • Попросите два представления поделиться одним и тем же фоном с эффектом параллаксинга (пример: элементы на красном изображении ниже немного немного медленнее, чем фон, когда pagin на зеленый вид)
  • Найдите способ для этих двух видов «поделиться» графикой. Идея состоит в том, чтобы на красном изображении была анимация, которая «пересекает» в зеленый вид.

Есть ли способ решить это на платформе Android? Есть ли способ просто определить один макет, размер которого больше, чем размер телефона, и каким-то образом он сможет отображать страницу между видимой частью представления и невидимой частью?

ответ

1

вы должны работать onInterceptTouchEvent. когда вы нажимаете на horizontalScrollview, вы должны возвращать false в onInterceptTouchEvent else return true;

Вот, как я сделал

1) сделать CustomViewpager расширения ViewPager 2) замещают onInterceptTouchEvent как это

@Override 
public boolean onInterceptTouchEvent(MotionEvent ev) { 
    if (childId > 0) { 
     View scroll = findViewById(childId); 
     if (scroll != null) { 
      Rect rect = new Rect(); 
      scroll.getHitRect(rect); 
      if (rect.contains((int) event.getX(), (int) event.getY())) { 
       return false; 
      } 
     } 
    } 
    return true; 
} 
private int childId; 
public void setChildId(int id) { 
    this.childId = id; 
} 

3) использовать customViewpager вместо ViewPager в XML как этот

<com.packagename.CustomViewpager ..... 

4) и set childId от такой деятельности

CustomViewpager cv=(CustomViewpager)findViewById(R.id.id_of_customviewpager); 
cv.setChildId(R.id.id_of_customviewpager); 

5) сделано

Logic, когда вы касаетесь HorizontalScrollview дают прикосновение к ребенку другой мудрый дать тронуть к родителю

+0

такого рода работ. Если вы прокручиваете вертикально, то прямой удар ребенка не изменяется. Пейджинговые жесты в исходном положении перемещенного ребенка не перехватываются. –

+0

@ chrish, Stopped viewpager swipe, В моем случае страница ViewPager содержит ScrollView внутри, у меня есть 2 HorizontalScrollView, теперь под этим прокруткой ViewPager HorizontalScrollView не работает. Любое возможное решение? –

Смежные вопросы