Как установить количество вкладок для отображения на панели действий?

#android

#Android

Вопрос:

Как я могу контролировать количество вкладок, отображаемых на панели действий?
Для установки вкладок я использую следующий код:

 public class MainActivity extends ActionBarActivity implements TabListener {

    private List<Fragment> fragList = new ArrayList<Fragment>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // setContentView(R.layout.activity_main);
        ActionBar bar = getSupportActionBar();
        bar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
        Tab tabVipusk = bar.newTab();
        tabVipusk.setText("Выпуск");
        tabVipusk.setTabListener(this);
        bar.addTab(tabVipusk);
        Tab tabConstuctor = bar.newTab();
        tabConstuctor.setText("Конструктор");
        tabConstuctor.setTabListener(this);
        bar.addTab(tabConstuctor);
        Tab tabPopular = bar.newTab();
        tabPopular.setText("Популярное");
        tabPopular.setTabListener(this);
        bar.addTab(tabPopular);
        Tab tabActual = bar.newTab();
        tabActual.setText("Актуальное");
        tabActual.setTabListener(this);

        bar.addTab(tabActual);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        return true;
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {

    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {

        if (fragList.size() > 0 amp;amp; fragList.size() >= tab.getPosition()) {
            ft.replace(android.R.id.content, fragList.get(tab.getPosition()));
        } else {
            fragList.add(new VipuskTabFragment());
            fragList.add(new ConstructorTabFragment());
            fragList.add(new PopularTabFragment());
            fragList.add(new ActualTabFragment());
            ft.replace(android.R.id.content, fragList.get(tab.getPosition()));
        }

    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        // if (fragList.size() >= tab.getPosition()) {
        // ft.remove(fragList.get(tab.getPosition()));
        // }

    }

}
  

Но в портретном режиме отображаются только 3 вкладки. Но без полей четвертая вкладка явно поместится. Итак, на самом деле есть место для 4 вкладок. Как отобразить 4 вкладки?

Комментарии:

1. Обратите внимание, что использование вкладок на панели действий не рекомендуется в предварительном просмотре разработчика «L», и оно должно оставаться устаревшим в будущих версиях Android. Пожалуйста, рассмотрите возможность использования какой-либо альтернативной вкладки, такой как ViewPager with PagerTabStrip .

Ответ №1:

Я использовал FragmentTabHost, который использует фиксированные вкладки и идеально подходит для моего дела