6

Utilizo las libs ActionBarSherlock y ViewPagerIndicator para implementar el efecto deslizante y la barra de acciones. Como resultado, puedo deslizar los diferentes Fragmentos, pero el título del indicador no se muestra.ViewPagerIndicator no muestra el texto del título

Captured Screen

Aquí es mi 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); 

} 
    ...... 

Aquí está mi adaptador

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

Respuesta

12

He resuelto el problema cambiando el getTitle (posición int) para getPageTitle (int) en ViewPagerFragmentAdapter. ViewPagerIndicator ChangLog tiene la siguiente descripción:

Título adaptador de indicador de devolución de llamada ahora utiliza el método estándar getPageTitle (int) introducido en la versión R6 de la biblioteca de soporte.

+1

Gracias por publicar la solución a su pregunta. Me ayudó. – Seth

+2

Uso el método getPageTitle (int) para devolver el título pero el problema no se resolvió. Por favor, ayúdame. –

+0

@NguyenMinhBinh ¿Te falta 'tabLayout.setupWithViewPager (mViewPager);' ? Esta es una de las razones por las que no verá las pestañas –

Cuestiones relacionadas