2013-08-19 42 views
5

Tôi có một danh sách các Mảnh mà tôi phải đặt trong một ViewPager (không có vấn đề cho đến nay).ViewPager cuộn nửa màn hình

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

Adapter

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

Những gì tôi cần là làm cho ViewPager để hiển thị hai mục trên màn hình, nhưng chỉ di chuyển theo một mỗi lần.

hình ảnh này có thể giúp tôi giải thích những gì tôi có nghĩa là: Half screen scroll ViewPager

+2

Xin chào, đây là blog, có thể giúp http://commonsware.com/blog/2012/08/20/multiple-view-viewpager-options.html – TeeTracker

+0

Tuyệt vời! Đây chính xác là những gì tôi cần! Bạn đã cứu tôi rất nhiều thời gian! – Nifhel

Trả lời

10

Nhờ bình luận TeeTracker của tôi tìm thấy giải pháp cho vấn đề của bạn. Tôi vừa phải ghi đè getPageWidth trong Bộ điều hợp của mình:

@Override 
public float getPageWidth(int position) { 
    return(0.5f); 
} 
Các vấn đề liên quan