Я пытаюсь использовать новый дизайн TabLayout в своем проекте. Я хочу, чтобы макет адаптировался к любому размеру и ориентации экрана, но его можно было бы правильно увидеть в одной ориентации.
Я имею дело с Gravity и Mode, устанавливая свой tabLayout как:
tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER);
tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE);
Поэтому я ожидаю, что если места нет, tabLayout можно прокручивать, но если есть место, он центрируется.
Из гидов:
public static final int GRAVITY_CENTER Gravity, используемый для размещения вкладок в центре TabLayout.
public static final int GRAVITY_FILL Gravity используется для максимального заполнения TabLayout. Эта опция действует только при использовании с MODE_FIXED.
public static final int MODE_FIXED Фиксированные вкладки отображают все вкладки одновременно и лучше всего используются с контентом, который выигрывает от быстрого поворота между вкладками. Максимальное количество вкладок ограничено шириной представления. Фиксированные вкладки имеют одинаковую ширину в зависимости от самой широкой метки вкладки.
public static final int MODE_SCROLLABLE Прокручиваемые вкладки отображают подмножество вкладок в любой момент времени и могут содержать более длинные метки вкладок и большее количество вкладок. Их лучше всего использовать для просмотра контекстов в сенсорных интерфейсах, когда пользователям не нужно напрямую сравнивать ярлыки вкладок.
Итак, GRAVITY_FILL совместим только с MODE_FIXED, но at is ничего не указывает для GRAVITY_CENTER, я ожидаю, что он будет совместим с MODE_SCROLLABLE, но это то, что я получаю, используя GRAVITY_CENTER и MODE_SCROLLABLE
Таким образом, он использует SCROLLABLE в обеих ориентациях, но не использует GRAVITY_CENTER.
Это то, что я ожидал от пейзажа; но для этого мне нужно установить MODE_FIXED, поэтому я получаю в портретной ориентации:
Почему GRAVITY_CENTER не работает для SCROLLABLE, если tabLayout умещается на экране? Есть ли способ динамически установить гравитацию и режим (и увидеть, что я ожидаю)?
Большое спасибо!
ИЗМЕНИТЬ: это макет моего TabLayout:
<android.support.design.widget.TabLayout
android:id="@+id/sliding_tabs"
android:layout_width="match_parent"
android:background="@color/orange_pager"
android:layout_height="wrap_content" />