Узнайте, сложна ли ActionBar
Если вы добавите вкладки в свой ActionBar
, они будут находиться в дополнительном стеке ActionBar
на телефонах в портретном режиме. Есть ли простой способ узнать, произошло ли это?
Я добавил два скриншота приложения YouTube. Первый показывает нормальный ActionBar
с вкладками в нем, второй показывает вкладки в стеке ActionBar
.
![Youtube App (landscape)]()
![Youtube App (portrait)]()
Ответы
Ответ 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 минут назад.
для этого вам нужно создать три отдельных макета. один для дна, чтобы использовать его как Include
и один для ActionBar. Использовать его как ActionBar View.
если вы проверите мои последние ответы, вы найдете, как я это сделал.
надеюсь, что это принесет вам пользу. приветствия