5

ViewPager に入れなければならない Fragments のリストがあります (今のところ問題ありません)。

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 が画面に 2 つの項目を表示するようにすることですが、毎回 1 つだけスクロールします。

この画像は、私が何を意味するかを説明するのに役立つかもしれません: 半画面スクロール ViewPager

4

1 に答える 1

15

TeeTracker のコメントのおかげで、問題の解決策が見つかりました。アダプターで getPageWidth をオーバーライドする必要がありました。

@Override
public float getPageWidth(int position) {
    return(0.5f);
} 
于 2013-08-19T10:16:28.950 に答える