Подтвердить что ты не робот

Узнайте, сложна ли ActionBar

Если вы добавите вкладки в свой ActionBar, они будут находиться в дополнительном стеке ActionBar на телефонах в портретном режиме. Есть ли простой способ узнать, произошло ли это?

Я добавил два скриншота приложения YouTube. Первый показывает нормальный ActionBar с вкладками в нем, второй показывает вкладки в стеке ActionBar.

Youtube App (landscape)Youtube App (portrait)

4b9b3361

Ответ 1

Можно узнать, есть ли одна или две строки в строке действий по высоте. Существует метод getHeight(), но он не будет работать в onCreate или onStart, он вернет реальное значение, только если активность уже запущена.

В горизонтальной ориентации высота панели действия 40dip (80/60/40/30 px на разных экранах), в портретной ориентации с вкладками 96dp (192/144/96/72 px).

Это не лучшая идея полагаться на это, но я не могу найти другого способа узнать, находятся ли вкладки внутри панели действий.

Ответ 2

Это поведение называется Разделить панель действий. Это происходит, когда AndroidManifest устанавливается с uiOptions="splitActionBarWhenNarrow" в элементе <activity> или <application>.

Android настраивает внешний вид панели действий различными способами, исходя из текущего размера экрана. Использование панели действий split - это всего лишь один из вариантов, позволяющий панели действий дополнительно оптимизировать работу пользователя для разных размеров экрана. При этом вы также можете разрешить панели действий сворачивать вкладки навигации в основную панель действий. То есть, если вы используете вкладки навигации в своей панели действий, как только элементы действия будут разделены на узком экране, вкладки навигации могут быть помещены в основную панель действий, а не разделены на "сложенную панель действий".

Mock-ups of split action bar with navigation tabs on the left; with the app icon and title disabled on the right.

Вы можете получить более подробную информацию здесь.

Ответ 3

Ну, я создал actionBar, похожий на Instagram с нижним ActionBar, без необходимости использовать вкладки. взгляните на это изображение. Я ответил на этот связанный вопрос по другому вопросу 10 минут назад. CustomView ActionBar And Fake Bottom ActionBar для этого вам нужно создать три отдельных макета. один для дна, чтобы использовать его как Include и один для ActionBar. Использовать его как ActionBar View.

если вы проверите мои последние ответы, вы найдете, как я это сделал. надеюсь, что это принесет вам пользу. приветствия