2017-12-28 7 views
1

Ich habe eine FragmentPagerAdapter, die behandelt, das aktuelle Fragment zu erhalten, die Anzahl der Registerkarten zu verfolgen und den Registerkartentitel für jede Registerkarte festzulegen.GetPageTitle wird nicht in FragmentPagerAdapter aufgerufen

public class ClothingSectionsPagerAdapter extends FragmentPagerAdapter { 

    private String[] mCategories; 

    public ClothingSectionsPagerAdapter(FragmentManager fm) { 
     super(fm); 
    } 

    public void setContext(Context context) { 
     mCategories = context.getResources().getStringArray(R.array.category); 
    } 

    @Override 
    public Fragment getItem(int position) { 
     return ClothingCategoryFragment.newInstance(mCategories[position]); 
    } 

    @Override 
    public int getCount() { 
     return mCategories.length; 
    } 

    @Override 
    public CharSequence getPageTitle(int position) { 
     Log.d("getPageTitle", mCategories[position]); 
     return mCategories[position]; 
    } 
} 

In meiner Tätigkeit implementiere ich diese Klasse so.

ClothingSectionsPagerAdapter sectionsPagerAdapter = 
       new ClothingSectionsPagerAdapter(getSupportFragmentManager()); 

sectionsPagerAdapter.setContext(this); 
mViewPager.setAdapter(sectionsPagerAdapter); 
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout)); 
mTabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager)); 
mViewPager.setCurrentItem(startingFragmentPosition); 

Allerdings, wenn ich meine App laufen lasse. Die Registerkarten sind vorhanden, aber sie sind ohne Titel. Die getPageTitle Methode wird nie aufgerufen. Wie behebe ich das?

+2

'tabLayout.setupWithViewPager (viewPager);' – Prem

Antwort

2

Versuchen Sie, diese

mTabLayout.setupWithViewPager(mViewPager);