6

Uso le librerie ActionBarSherlock e ViewPagerIndicator per implementare l'effetto scorrevole e la barra delle azioni. Di conseguenza, posso scorrere i diversi frammenti, ma il titolo dell'indicatore non viene visualizzato.ViewPagerIndicator non visualizza il testo del titolo

Captured Screen

Ecco la mia 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); 

} 
    ...... 

Ecco il mio adattatore

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

risposta

12

Ho risolto il problema cambiando la getTitle (int position) per getPageTitle (int) in ViewPagerFragmentAdapter. ViewPagerIndicator ChangLog ha la seguente descrizione:

Titolo adattatore indicatore di richiamata ora usa il metodo standard getPageTitle (int) introdotto nella versione r6 della libreria di supporto.

+1

Grazie per aver pubblicato la soluzione alla tua domanda. Mi ha aiutato. – Seth

+2

Uso il metodo getPageTitle (int) per restituire il titolo ma il problema non è stato risolto. Mi aiuti per favore. –

+0

@NguyenMinhBinh Ti manca "tabLayout.setupWithViewPager (mViewPager);" ? Questo è uno dei motivi per cui non vedrai le schede –

Problemi correlati