Sandy
Sandy

Reputation: 428

How can I set the titles in a PagerTitleStrip for a View pager

I have problem setting the title view pager by using PagerTitleStrip. I added a child view of PagerTitleStrip in view pager.

Where can I provide the title strings to apply to each page?

How can I set the page title in the Page Adapter class?

Upvotes: 2

Views: 1755

Answers (2)

Sandy
Sandy

Reputation: 428

Override the getPageTitle method and supply your static array of pages string to it.

String [] titlesArray = 
    new String []{ 
        page1, 
        page2,
        page3
    };

public CharSequence getPageTitle(int position) {
    return titlesArray [position];
}

Upvotes: 4

NoWar
NoWar

Reputation: 37633

Here is full example. You have to implement public CharSequence getPageTitle(int position).

public class ViewPagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();

    public ViewPagerAdapter(FragmentManager manager) {
        super(manager);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFragment(Fragment fragment) {
        mFragmentList.add(fragment);
    }

     @Override
    public Fragment getItem(int position) {
        if(position == 0){
            return FragmentInner1.newInstance();
        }
        else {
            return FragmentInner2.newInstance();
        }
    }

    @Override
    public CharSequence getPageTitle(int position) {
        if(position == 0){
            // public static final String PAGE_TITLE = "My Title #1" is within the layout FragmentInner1;
            return FragmentInner1.PAGE_TITLE;
        }
        else {
            // public static final String PAGE_TITLE = "My Title #2" is within the layout FragmentInner2;
            return FragmentInner2.PAGE_TITLE;
        }
    }
}

Upvotes: 0

Related Questions