Это то, что я сделал, чтобы отключить первую страницу ViewPager
. Вместо того, чтобы использовать переменные состояния, я использовал ViewPager.getAdapter()
и проверил там, должен ли я разрешить свайп:
public class CardViewPager extends ViewPager {
public CardViewPager(Context context) {
super(context);
}
public CardViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
public void setCurrentItem(int item) {
if ((((CardFragmentAdapter) this.getAdapter()).isFirstItemDisabled())
&& (item == 0)) {
Log.d("ViewPager", "You don't wanna see this.");
return;
}
super.setCurrentItem(item);
}
}
Конечно, это логично, если вы по какой-то причине не хотите удалять страницу.
Если, например, вы хотите отключить второй элемент, вы можете super.setCurrentItem(item+1)
или что-то подобное.