Как добавить вкладку в SlidingTabLayout?

Я использую Google SlidingTabLayout, на мой взгляд, но я хочу добавить к нему динамически новые вкладки. Я использую этот http://developer.android.com/samples/SlidingTabsBasic/src/com.example.android.common/view/SlidingTabLayout.html

Это мой код, который его инициализирует:

    // Create the adapter that will return a fragment for each of the three
    // primary sections of the activity.
    mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager()); 
    //this ^ is a FragmentStatePagerAdapter

    // Set up the ViewPager with the sections adapter.
    mViewPager = (ViewPager) findViewById(R.id.pager);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    // Assiging the Sliding Tab Layout View
    tabs = (SlidingTabLayout) findViewById(R.id.tabs);

    // Setting the ViewPager For the SlidingTabsLayout
    tabs.setViewPager(mViewPager);

Я совершенно не знаю, как добавить вкладку.

Я думал о смене ViewPager, но в SlidingTabLayout есть комментарий:

/**
 * Sets the associated view pager. Note that the assumption here is that the pager content
 * (number of tabs and tab titles) does not change after this call has been made.
 */
public void setViewPager(ViewPager viewPager) {

comment
Это может быть немного другой дизайн, чем вы предполагали, но взгляните на этот класс — он может делать то, что вам нужно, хотя и без вкладок: github.com/daimajia/AndroidSwipeLayout   -  person Kristy Welsh    schedule 10.02.2015
comment
Мне нужны табы. Но все равно спасибо   -  person maysi    schedule 10.02.2015


Ответы (2)


Вероятно, есть более приятный и эффективный способ, но простой вызов setViewPager() каждый раз, когда вы добавляете страницу в свой ViewPager, будет работать.

person Colin White    schedule 07.03.2015

Вот хороший учебник. http://www.android4devs.com/2015/01/how-to-make-material-design-sliding-tabs.html

Короче говоря, вы можете снабдить их адаптером пейджера. Переопределите метод getPageTitle, чтобы предоставить что-то нестандартное. Например.

@Override
public CharSequence getPageTitle(int position) {
    return _items[position].getDisplayName();
}
person t3rse    schedule 11.02.2015
comment
Да, это хорошо, но не показывает, как динамически добавлять новые вкладки. - person maysi; 11.02.2015
comment
Вы нашли решение @Simon. Я ищу ту же проблему - person Sammys; 02.07.2015