ViewPagerIndicator无法显示标题文本

6
我使用ActionBarSherlock和ViewPagerIndicator库来实现滑动效果和操作栏。结果,我可以滑动不同的Fragments,但指示器标题没有显示。
这是我的FragmentActivity:
public class eventActivity extends SherlockFragmentActivity {
    ViewPagerFragmentAdapter mAdapter;
    ViewPager mPager;
    PageIndicator mIndicator;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.event_layout);

    ActionBar actionBar = getSupportActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);
    actionBar.setDisplayShowTitleEnabled(false);
    actionBar.setDisplayUseLogoEnabled(true);

    mAdapter = new ViewPagerFragmentAdapter(getSupportFragmentManager());
    mPager = (ViewPager)findViewById(R.id.pager);
    mPager.setAdapter(mAdapter);
    mIndicator = (TitlePageIndicator)findViewById(R.id.indicator);
    mIndicator.setViewPager(mPager);
    mIndicator.setCurrentItem(1);

}
   ......

这是我的适配器。
    public static class ViewPagerFragmentAdapter extends FragmentPagerAdapter implements TitleProvider {

    ArrayList<Fragment> fragments = new ArrayList<Fragment>();
    ArrayList<String> titles = new ArrayList<String>();

    public ViewPagerFragmentAdapter(FragmentManager fm) {
        super(fm);
        fragments.add(new eventInvitedFragment());
        titles.add("Invited");
        fragments.add(new eventAllFragment());
        titles.add("all");
        fragments.add(new eventParticipatedFragment());
        titles.add("participated");
    }


    @Override
    public Fragment getItem(int position) {
        return fragments.get(position);
    }

    @Override
    public int getCount() {
        return fragments.size();
    }

    @Override
    public String getTitle(int position) {
        return titles.get(position);
    }
}
1个回答

12

我通过在ViewPagerFragmentAdapter中将getTitle(int position)更改为getPageTitle(int)来解决了问题。 ViewPagerIndicator的ChangLog有以下描述:

标题指示器适配器回调现在使用支持库r6版本中引入的标准getPageTitle(int)方法。


1
谢谢您发布自己问题的解决方案,对我很有帮助。 - Seth
2
我使用getPageTitle(int)方法返回标题,但问题并没有得到解决。请帮帮我。 - Nguyen Minh Binh
@NguyenMinhBinh 你是否忘记了加上 'tabLayout.setupWithViewPager(mViewPager);' ?这可能是你看不到选项卡的原因之一。 - Yousef khan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接