Я видел некоторую болтовню об этом, но ничего определенного. Есть ли способ поместить вкладки в TabWidget в нижней части экрана? Если так, то как?
Я попробовал следующее, но не сработало:
а) установка вкладки под раскладкой кадра
б) установка гравитации вкладки "снизу"
Спасибо! llappall
Ответы:
Вот самое простое, надежное и масштабируемое решение для отображения вкладок в нижней части экрана.
layout_height
дляwrap_content
на обоих FrameLayout и TabWidgetandroid:layout_weight="1"
android:layout_weight="0"
(0 по умолчанию, но для акцента, читаемости и т. Д.)android:layout_marginBottom="-4dp"
(чтобы удалить нижний разделитель)Полный код:
источник
layout_weight=1
на FrameLayout. Это позволяет элементу управления вкладками сначала «требовать» свою высоту вне LinearLayout.android:layout_marginBottom="-5px"
в TabWidget. Это переместит TabWidget с нижней части экрана на 5 пикселей, достаточно, чтобы вы не увидели разделитель. FrameLayout будет компенсировать размер, поэтому он работает отлично. Я не уверен, изменяется ли размер делителя на больших устройствах или нет. Возможно, вам придется использоватьdp
вместоpx
.Попробуйте;) Просто посмотрите содержимое FrameLayout (@ id / tabcontent), потому что я не знаю, как оно будет обрабатываться в случае прокрутки ... В моем случае это работает, потому что я использовал ListView в качестве содержимого моих вкладок , :) Надеюсь, поможет.
источник
Есть способ убрать строку.
1) Следуйте этому руководству: Android-вкладки с фрагментами
2) Затем примените изменение RelativeLayout, предложенное Leaudro выше (примените реквизиты макета ко всем FrameLayouts).
Вы также можете добавить ImageView к tab.xml в элементе # 1 и получить очень похожий на iPhone вид вкладок.
Вот скриншот того, над чем я сейчас работаю. У меня еще есть работа, в основном сделать селектор для иконок и обеспечить равномерное горизонтальное распределение, но вы поняли идею. В моем случае я использую фрагменты, но те же принципы должны применяться к стандартному представлению вкладок.
источник
Не уверен, что он будет работать для всех версий Android (особенно с пользовательским интерфейсом), но мне удалось убрать серую полосу внизу, добавив
в XML-код TabWidget ...
источник
Для всех тех, кто пытается удалить разделительную линию tabWidget, вот пример проекта (и соответствующего учебного пособия), который отлично подходит для настройки вкладок и, таким образом, устранения проблем, когда вкладки находятся внизу. Проект Eclipse: android-custom-tabs ; Исходное объяснение: блог ; Надеюсь, это помогло.
источник
Существует два способа отображения вкладок в нижней части вкладки.
Пожалуйста, проверьте ссылку для более подробной информации .
источник
источник
Это может быть не совсем то, что вы ищете (это не «простое» решение для отправки ваших вкладок внизу экрана), но, тем не менее, это интересное альтернативное решение, которое я хотел бы отметить вам:
ScrollableTabHost разработан так, чтобы вести себя как TabHost, но с дополнительным обзором прокрутки для размещения большего количества элементов ...
возможно, покопавшись в этом проекте с открытым исходным кодом, вы найдете ответ на свой вопрос. Если я увижу что-нибудь проще, я вернусь к тебе.
источник
У меня была такая же проблема с вкладками Android при попытке разместить их в нижней части экрана. Мой сценарий состоял в том, чтобы не использовать файл макета и создавать вкладки в коде. Я также искал запуск действий из каждой вкладки, которые казались слишком сложными при использовании других подходов, поэтому вот пример кода для решения проблемы:
добавляющая-Вкладка-в-андроида-и-размещая-их
источник
Да, смотрите: ссылка , но он использовал макеты XML, а не действия для создания новой вкладки, поэтому поместите его код XML (установите paddingTop для FrameLayout - 0px), а затем напишите код:
}
источник
Я рекомендую использовать этот код для стабильной работы, он оптимизирован для вложенных фрагментов во вкладке (например, вложенный MapFragment) и протестирован на «не держать действия»: https://stackoverflow.com/a/23150258/2765497
источник