2015-09-16 4 views
-1

Так у меня есть классUpdate FragmentPagerAdapter PAGETITLE динамически

public class TabPagerAdapter extends android.support.v4.app.FragmentPagerAdapter { 

    @Override 
    public void notifyDataSetChanged() { 
     super.notifyDataSetChanged(); 
     Log.i("debug", "notifyDataSetChanged tabpager"); 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     Log.i("debug", "getPageTitle tabpager"); 
     // ... 
    } 
} 

А вот использование адаптера:

mViewPager = (ViewPager) findViewById(R.id.viewpager); 
    pagerAdapter = new TabPagerAdapter(getSupportFragmentManager(), this); 
    mViewPager.setAdapter(pagerAdapter); 

Теперь, когда я хочу, чтобы обновить название фрагментов динамически (так getPageTitle() должен быть вызван снова) Я попробовал это pagerAdapter.notifyDataSetChanged();, что было отмечено как ответ в похожих вопросах. Но здесь ничего не происходит. Печатается первая запись, getPageTitle не вызывается снова.

Я пробовал много других вещей, которые где советовали в другие ответы, как:

  • mViewPager.destroyDrawingCache();
  • Перезапись FragmentPagerAdapter::getItemPosition

    @Override общественности INT getItemPosition (объект Object) { возврата POSITION_NONE ; }

но ничего не работало для меня.

Любая идея?

+0

Почему downvote? Пожалуйста, добавьте комментарий, если вы меняете мой вопрос и добавляете конструктивную обратную связь ... – Chris

ответ

0

Я использовал этот и он работал хорошо для меня:

mPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() { 
       @Override 
       public void onPageSelected(int position) { 
        // getActionBar().setTitle("title from your list"); 
       } 
      }); 

Благодаря

Смежные вопросы