Как распознать последнюю страницу ViewPager и автоматически перенаправить на первую страницу при перелистывании - PullRequest
0 голосов
/ 21 ноября 2018

У меня проблема с заголовком, у меня 3 страницы в viewPager.Как перенаправить на первую страницу, когда я проведу пальцем на последней странице в viewPager?

ViewPager.OnPageChangeListener viewPagerPageChangeListener = new ViewPager.OnPageChangeListener() {
    @Override
    public void onPageSelected(int position) {
        int x  = position;
        Log.i("ON Possition",Integer.Tostring(x));
        if(x == 3){
            viewPager.setCurrentItem(x);
            Log.i("ON last Possition",Integer.Tostring());
        }
    }

    @Override
    public void onPageScrolled(int arg0, float arg1, int arg2) {

    }

    @Override
    public void onPageScrollStateChanged(int arg0) {

    }
};

1 Ответ

0 голосов
/ 21 ноября 2018

Вы не можете плавно перейти к первой странице с последней страницы.

прочитайте код ниже.мы должны подделать количество элементов.

private class MyPagerAdapter extends PagerAdapter {
    Context context;

    public MyPagerAdapter(Context context) {
        this.context= context;
    }

    @Override
    public int getCount() {
        if (tList != null && tList.size() > 1) {
            return tList.size() * MAX_PAGE; // simulate infinite by big number of products
        } else {
            return tList.size();
        }
    }


    @Override
    public int getItemPosition(Object object) {
        int position;
        if (tList != null && tList.size() > 1) {
            position = super.getItemPosition(object) % tList.size(); // use modulo for infinite cycling
            return position;
        } else {
            return super.getItemPosition(object);
        }

    }

    public int getItemPosition(int index) {
        int position;
        if (tList!= null && tList.size() > 1) {
            position = index % tList.size(); // use modulo for infinite cycling
            return position;
        } else {
            return index;
        }

    }


}
...