Сначала создайте пользовательский класс ViewPager следующим образом:
public class CustomViewPager extends ViewPager {
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
if(v instanceof ViewPager) {
return true;
}
return super.canScroll(v, checkV, dx, x, y);
}
}
Возврат (логический) метода canScroll скажет вам, должен ли горизонтальный жест для изменения страницы для ViewPager быть правильным илилевая граница фрагмента (true) или если это работает для полного экрана фрагмента (false).Например, если вы хотите, чтобы только ваш первый фрагмент использовал правую границу для перехода к следующему фрагменту, поскольку первый фрагмент имеет другое событие горизонтальной прокрутки, это будет код для переопределения метода canScroll:
@Override
protected boolean canScroll(View v, boolean checkV, int dx, int x, int y) {
if(v instanceof ViewPager) {
int currentItem = ((ViewPager) v).getCurrentItem();
if((currentItem==0)){
return true;
}
return false;
}
return super.canScroll(v, checkV, dx, x, y);
}
Последним шагом будет использование класса CustomViewPager в вашем основном классе:
ViewPager myPager= (CustomViewPager)myContext.findViewById(R.id.myCustomViewPager);
и xml:
<my.cool.package.name.CustomViewPager
android:id="@+id/myCustomViewPager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1" />