6

Ich verwende die ActionBarSherlock- und ViewPagerIndicator-Bibliotheken, um den Schieberegler und die Aktionsleiste zu implementieren. Als Ergebnis kann ich die verschiedenen Fragmente wischen, aber der Indikatortitel wird nicht angezeigt.ViewPagerIndicator zeigt keinen Titeltext an

Captured Screen

Hier ist meine 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); 

} 
    ...... 

Hier ist mein Adapter

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); 
    } 
} 

Antwort

12

ich das Problem gelöst haben, indem die getTitle Wechsel (int position) zu getPageTitle (int) in ViewPagerFragmentAdapter. ViewPagerIndicator ChangLog hat die folgende Beschreibung:

Titel Indikator Adapter Rückruf jetzt den Standard getPageTitle (int) -Methode in der r6 Version der Support-Bibliothek eingeführt verwendet.

+1

Danke für das Posten der Lösung zu Ihrer eigenen Frage. Es hat mir geholfen. – Seth

+2

Ich benutze getPageTitle (int) -Methode, um den Titel zurückzugeben, aber das Problem wurde nicht gelöst. Bitte hilf mir. –

+0

@NguyenMinhBinh Vermissen Sie 'tabLayout.setupWithViewPager (mViewPager);' ? Dies ist einer der Gründe, warum Sie keine Tabs sehen –