使用ViewPager动态添加和删除片段

时间:2013-12-05 12:12:43

标签: java android android-viewpager fragment

我现在正在显示三个片段,中间片段显示今天的日期。左边的片段显示昨天的日期,右边的片段显示明天的日期。例如:

  • 片段左= 2013-12-04
  • Fragment middle = 2013-12-05
  • Fragment right = 2013-12-06

我想要实现的是当我滑动到另一个片段时,该片段成为中间片段。当我向Fragment左侧滑动时,它变成片段中间。因此需要使用新日期创建新的片段,并且需要删除片段权限。现在是:

  • 片段左= 2013-12-03
  • Fragment middle = 2013-12-04
  • Fragment right = 2013-12-05

到目前为止我的代码:

public class Schema extends FragmentActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.schema);    
        Utils.setDates();
        List<Fragment> fragments = getFragments();
        PagerAdapter pageAdapter = new PagerAdapter(getSupportFragmentManager(), fragments);
        ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
        pager.setAdapter(pageAdapter);
        pager.setCurrentItem(1);
    }

    private List<Fragment> getFragments(){
        List<Fragment> fList = new ArrayList<Fragment>();
        ArrayList<String> dates = new ArrayList<String>();
        Calendar cal = Calendar.getInstance();
        DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
        dates.add(df.format(cal.getTime()));
        cal.add(Calendar.DATE, 1);
        dates.add(df.format(cal.getTime()));
        cal.add(Calendar.DATE, -2);
        dates.add(df.format(cal.getTime()));
        Collections.sort(dates);
        for (String date : dates){
            fList.add(FragmentSchema.newInstance(date));
        }
        return fList;
    }
}

1 个答案:

答案 0 :(得分:-1)

尝试pager.setOffscreenPageLimit(5);