Динамическое добавление и удаление фрагментов в ViewPager - PullRequest
5 голосов
/ 26 октября 2011

Я использую ViewPager с пользовательским PagerFragmentAdapter, который использует внутренний список для предоставления фрагментов.Я хотел бы добавлять и удалять фрагменты динамически при изменении настроек.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_pager);
    mAdapter = new ServicePagerAdapter(getSupportFragmentManager());
    mPager = (ViewPager) findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);
}

Я попытался снова позвонить на setAdapter, но получил IllegalStateException (Can not perform this action after onSaveInstanceState).

Как можно достичь моей цели?

1 Ответ

2 голосов
/ 22 октября 2012

Вам не нужно каждый раз сбрасывать ServicePagerAdapter.Достаточно один раз создать и установить его в методе onCreate() вашего Activity (или в методе onActivityCreated() вашего Fragment), а затем вы можете просто вызвать метод add() вашего адаптера, чтобы добавить в него новые элементы.,Но не забывайте звонить notifyDataSetChanged() после каждого добавления в адаптер.

...