I already have the two buttons "left" and "right" in my xml-pager file.. I want to set them: when i click on "left" button the page swipe automaticlly to left and when i click on "right" button it goes automatically to right.. can someone give me the code to put in my activity file? thank you!

有帮助吗?

解决方案

To go the next/previous page use something like the following:

private void nextPage() {
    int currentPage = viewPager.getCurrent();
    int totalPages = viewPager.getAdapter().getCount();

    int nextPage = currentPage+1;
    if (nextPage >= totalPages) {
        // We can't go forward anymore.
        // Loop to the first page. If you don't want looping just
        // return here.
        nextPage = 0;
    }

    viewPager.setCurrentItem(nextPage, true);
}

private void previousPage() {
    int currentPage = viewPager.getCurrent();
    int totalPages = viewPager.getAdapter().getCount();

    int previousPage = currentPage-1;
    if (previousPage < 0) {
        // We can't go back anymore.
        // Loop to the last page. If you don't want looping just
        // return here.
        previousPage = totalPages - 1;
    }

    viewPager.setCurrentItem(previousPage, true);
}

其他提示

For android.support.v4, you can use the following:

ViewPager pager;
pager = (ViewPager) findViewById(R.id.viewPager);       
pager.setAdapter(new MyPagerAdapter(getSupportFragmentManager()));

Have a veiwpager adapter class like this:

private class MyPagerAdapter extends FragmentPagerAdapter {

    public MyPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int pos) {

        switch(pos)
        {
            case 0: return WelcomeFrag1.newInstance("Page 1");
            case 1: return WelcomeFrag2.newInstance("Page 2");
            case 2: return WelcomeFrag3.newInstance("Page 3");
            case 3: return WelcomeFrag4.newInstance("Page 4");
            case 4: return WelcomeFrag5.newInstance("Page 5");
            default: return WelcomeFrag1.newInstance("Page 1");
        }           
    }

    @Override
    public int getCount() {
        // TODO Auto-generated method stub
        return 5;
    }       
}

And finally have two methods nextPage() and previousPage() like this:

private void nextPage() {
    int currentPage = pager.getCurrentItem();
    int totalPages = pager.getAdapter().getCount();

    int nextPage = currentPage+1;
    if (nextPage >= totalPages) {
        // We can't go forward anymore.
        // Loop to the first page. If you don't want looping just
        // return here.
        nextPage = 0;
    }

    pager.setCurrentItem(nextPage, true);
}

private void previousPage() {
    int currentPage = pager.getCurrentItem();
    int totalPages = pager.getAdapter().getCount();

    int previousPage = currentPage-1;
    if (previousPage < 0) {
        // We can't go back anymore.
        // Loop to the last page. If you don't want looping just
        // return here.
        previousPage = totalPages - 1;
    }

    pager.setCurrentItem(previousPage, true);
}

Take note: I am using getCurrentItem() to get the index of the current page

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top