Intereting Posts
Иконки приоритет на панели действий Отключение EditText в android Android: Как получить дату создания файла? Android CollapsingToolbarLayout сбой прослушивателя Searchview не закрывается правильно на FIRST back press (это только потеря фокуса) Попытка добавить метод OpenFile для React Native, не может вызвать getCurrentActivity Скрыть / показать фрагмент без фрагментации Как запутать ProGuard, но сохранить имена, читаемые во время тестирования? Как запустить диалог «Подключиться к устройству» при использовании пользовательской кнопки каста? Пример проекта для выбора нескольких контактов Автоматическая настройка яркости, контрастности и резкости растрового изображения Разница между Spannable и String в android Как получить код подтверждения статуса обновления Навигация по погружающему режиму становится липким после нажатия на кнопку или сведение к минимуму Android Google Play Предупреждение: Уязвимость SSL-обработчика ошибок

Android: вкладки в BOTTOM

Я видел какую-то болтовню об этом, но ничего определенного. Есть ли способ поместить вкладки в TabWidget в нижней части экрана? Если да, то как?

Я пробовал следующее, но не работал:

A) установка табулиса ниже рамки
Б) установка силы тяги табуйдета на "нижнюю"

Благодаря! llappall

Вот простейшее, наиболее надежное и масштабируемое решение для получения вкладок в нижней части экрана.

  1. В вертикальном LinearLayout установите FrameLayout над TabWidget
  2. Установите layout_height для wrap_content как в FrameLayout, так и в TabWidget
  3. Установите android:layout_weight="1"
  4. Установите android:layout_weight="0" (0 по умолчанию, но для акцента, удобочитаемости и т. Д.).
  5. Установите android:layout_marginBottom="-4dp" (чтобы удалить нижний разделитель)

Полный код:

 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:padding="5dp"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="wrap_content" android:padding="5dp" android:layout_weight="1"/> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:layout_marginBottom="-4dp"/> </LinearLayout> </TabHost> 

Попробуйте это;) Просто просмотрите содержимое FrameLayout (@ id / tabcontent), потому что я не знаю, как он будет обрабатываться в случае прокрутки … В моем случае это работает, потому что я использовал ListView в качестве содержимого моих вкладок , 🙂 Надеюсь, поможет.

 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout android:layout_width="fill_parent" android:layout_height="fill_parent"> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_alignParentTop="true" android:layout_above="@android:id/tabs" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" /> </RelativeLayout> </TabHost> 

Существует способ удалить строку.

1) Следуйте этому руководству: android-tabs-with-fragments

2) Затем примените изменение RelativeLayout, предложенное Leaudro выше (примените реквизиты макета ко всем FrameLayouts).

Вы также можете добавить ImageView в tab.xml в item # 1 и получить очень похожий iPhone, как смотреть на вкладки.

Вот скриншот того, над чем я сейчас работаю. У меня все еще есть работа, в основном сделать селектор для значков и обеспечить равное горизонтальное распределение, но вы получите эту идею. В моем случае я использую фрагменты, но те же принципы должны применяться к стандартным представлениям табуляции.

Введите описание изображения здесь

Не уверен, что он будет работать для всех версий Android (особенно тех, у которых есть пользовательский интерфейс), но я смог удалить серое полотно внизу, добавив

  android:layout_marginBottom="-3dp" 

В XML-файл TabWidget …

Для всех тех из вас, кто пытается удалить разделительную строку tabWidget, вот пример проекта (и его соответствующий учебник), который отлично подходит для настройки вкладок и, таким образом, устранения проблем, когда вкладки находятся внизу. Eclipse Project: андроид-пользовательские вкладки ; Исходное объяснение: блог ; Надеюсь, это помогло.

Существует два способа отображения вкладок в нижней части вкладки.

  1. Использование относительной компоновки
  2. Использование атрибута Layout_weight

Пожалуйста, проверьте ссылку для получения более подробной информации .

 <?xml version="1.0" encoding="utf-8"?> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="0dip" android:layout_weight="1" /> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_weight="0" android:background="#252a31" android:tabStripEnabled="false" > </TabWidget> </LinearLayout> </TabHost> 

Возможно, это не совсем то, что вы ищете (это не простое решение для отправки ваших вкладок в нижней части экрана), но, тем не менее, это интересное альтернативное решение, которое я хотел бы отметить:

ScrollableTabHost предназначен для того, чтобы вести себя как TabHost, но с дополнительным scrollview, чтобы соответствовать другим элементам …

Возможно, врываясь в этот проект с открытым исходным кодом, вы найдете ответ на свой вопрос. Если я увижу что-нибудь проще, я вернусь к вам.

У меня была та же проблема с вкладками Android, когда вы пытались поместить их в нижней части экрана. Мой сценарий состоял в том, чтобы не использовать файл макета и создавать вкладки в коде, я также хотел активировать действия с каждой вкладки, которые казались слишком сложными с использованием других подходов, поэтому здесь приведен пример кода для решения проблемы:

добавляющая-Вкладка-в-андроида-и-размещая-их

Да, см. Ссылку , но он использовал xml-макеты, а не действия для создания новой вкладки, поэтому поставьте свой xml-код (установите paddingTop для FrameLayout-0px), а затем напишите код:

 public class SomeActivity extends ActivityGroup { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TabHost tab_host = (TabHost) findViewById(R.id.edit_item_tab_host); tab_host.setup(this.getLocalActivityManager()); TabSpec ts1 = tab_host.newTabSpec("TAB_DATE"); ts1.setIndicator("tab1"); ts1.setContent(new Intent(this, Registration.class)); tab_host.addTab(ts1); TabSpec ts2 = tab_host.newTabSpec("TAB_GEO"); ts2.setIndicator("tab2"); ts2.setContent(new Intent(this, Login.class)); tab_host.addTab(ts2); TabSpec ts3 = tab_host.newTabSpec("TAB_TEXT"); ts3.setIndicator("tab3"); ts3.setContent(new Intent(this, Registration.class)); tab_host.addTab(ts3); tab_host.setCurrentTab(0); } 

}

Я рекомендую использовать этот код для стабильной работы, он оптимизирован для вложенных фрагментов на вкладке (например, вложенной MapFragment) и проверен на «не продолжать действия»: https://stackoverflow.com/a/23150258/2765497