我使用ActionBarSherlock和ViewPagerIndicator库来实现滑动效果和操作栏。因此,我可以滑动不同的碎片,但不显示指标标题。
这是我的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);
}
}
答案 0 :(得分:12)
我通过在ViewPagerFragmentAdapter中将getTitle(int position)更改为getPageTitle(int)来解决了这个问题。 ViewPagerIndicator ChangLog具有以下描述:
标题指标适配器回调现在使用支持库的r6版本中引入的标准getPageTitle(int)方法。