2013-08-19 54 views
5

我有一个碎片列表,我必须放在一个ViewPager(到目前为止没有问题)。ViewPager滚动半屏

ArrayList<Fragment> fragmentList = new ArrayList<Fragment>(); 
fragmentList.add(new fragment1()); 
fragmentList.add(new fragment2()); 
fragmentList.add(new fragment3()); 
fragmentList.add(new fragment4()); 
FragmentAdapter mAdapter = new FragmentAdapter(mFragmentManager, fragmentList); 
mPager = (ViewPager) view.findViewById(R.id.pager_items_list); 
mPager.setCurrentItem(0); 
mPager.setAdapter(mAdapter); 
mPager.setOnPageChangeListener(pageChangeListener); 

适配器

public class FragmentAdapter extends FragmentStatePagerAdapter { 
    ArrayList<Fragment> fragmentsList; 
    public FragmentAdapter(FragmentManager fm, ArrayList<Fragment> fragmentsList) { 
     super(fm); 
     this.fragmentsList = fragmentsList; 
    } 
    @Override 
    public int getCount() { 
     return fragmentsList.size(); 
    }  
    @Override 
    public Fragment getItem(int position) { 
     if (position<fragmentsList.size() & fragmentsList.get(position)!=null) { 
      return fragmentsList.get(position); 
     } 
     return null; 
    } 
} 

我需要的是让ViewPager显示在屏幕上的两个项目,但只能通过每次一个滚动。

此图片可以帮我解释一下我的意思是: Half screen scroll ViewPager

+2

你好,这里是一个博客,可以帮助http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html – TeeTracker

+0

太棒了!这正是我需要的!你为我节省了很多时间! – Nifhel

回答

10

由于TeeTracker的评论,我发现你的问题的解决方案。我不得不重写getPageWidth在我的适配器:

@Override 
public float getPageWidth(int position) { 
    return(0.5f); 
}