2013-01-13 181 views
1

我已经在我的xml-pager文件中有两个按钮“左”和“右”.. 我想设置它们:当我点击“左”按钮时,页面自动滑动到左侧,我点击“右键”它会自动到正确的..有人可以给我的代码放在我的活动文件?谢谢!ViewPager导航按钮

回答

8

要转到下一/上一页使用类似如下:

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); 
} 
+0

谢谢您的回答约瑟夫.. 我真的新到Android编程所以对不起了这个问题,但其中的指数我必须把这个代码? –

+0

这是我的UNO.java文件 –

+0

http://stackoverflow.com/questions/14306402/viewpager-buttons –

1

对于android.support.v4,您可以使用以下命令:

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

拥有veiwpager适配器类像这个:

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; 
    }  
} 

最后有两个方法nextPage()和previousPage()像这样:

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); 
} 

请注意:我使用getCurrentItem()来得到当前页面