简体   繁体   English

动态更新 FragmentPagerAdapter pageTitle

[英]Update FragmentPagerAdapter pageTitle dynamically

So I have a class所以我有一堂课

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");
        // ...
    }
}

And here is the usage of the adapter:这是适配器的用法:

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

Now when I want to update the title of the fragments dynamically (so getPageTitle() should be called again) I tried this pagerAdapter.notifyDataSetChanged();现在,当我想动态更新片段的标题时(因此应该再次调用getPageTitle() ),我尝试了这个pagerAdapter.notifyDataSetChanged(); , which was marked as an answer in similiar questions. ,在类似问题中被标记为答案。 But nothing happens here.但这里什么也没有发生。 The first logging is printed, getPageTitle is not called again.打印第一个日志记录,不会再次调用 getPageTitle。

I tried many other things, which where advised in other answers, like:我尝试了许多其他事情,在其他答案中建议,例如:

  • mViewPager.destroyDrawingCache();
  • Overwriting FragmentPagerAdapter::getItemPosition覆盖FragmentPagerAdapter::getItemPosition

    @Override public int getItemPosition(Object object) { return POSITION_NONE; @Override public int getItemPosition(Object object) { return POSITION_NONE; } }

but nothing worked for me.但没有什么对我有用。

Any idea?任何的想法?

I have used this one and it worked well for me :我用过这个,对我来说效果很好:

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

Thanks谢谢

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM