2013-08-19 8 views
5

Ho una lista di Frammenti che devo inserire in un ViewPager (nessun problema fino ad ora).ViewPager scroll half screen

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

L'adattatore

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

Che cosa ho bisogno è quello di rendere il ViewPager per mostrare due elementi sullo schermo, ma scorrere solo di uno ogni volta.

Questa immagine potrebbe aiutarmi a spiegare cosa intendo: Half screen scroll ViewPager

+2

Salve, qui è un blog, potrebbe aiutare http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html – TeeTracker

+0

Fantastico! Questo è esattamente ciò di cui ho bisogno! Mi hai salvato un sacco di tempo! – Nifhel

risposta

10

Grazie al commento di TeeTracker ho trovato la soluzione per il vostro problema. Ho appena avuto a override getPageWidth nel mio adattatore:

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