У меня есть простое действие вкладки со следующим макетом:
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff00" />
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#ffffff00" />
Я использую кнопки в качестве индикаторов для вкладок
tabHost.addTab(tabHost.newTabSpec("Tab1")
.setIndicator(new Button(this))
.setContent(new Intent(this, TabActivity1.class)));
tabHost.addTab(tabHost.newTabSpec("Tab2")
.setIndicator(new Button(this))
.setContent(new Intent(this, TabActivity2.class)));
В этом случае FrameLayout всегда имеет черную линию и эффект тени сверху (вы можете увидеть это под кнопками):
Вопрос: как мне избавиться от этой линии ? Где метод, который рисует его в источниках Android?
Похоже, что способ сделать это - вложить tabwidget в LinerLayout... Смотрите здесь.
К сожалению, вы не можете от него избавиться. Это результат реализации TabWidget
. Внутри виджет TabWidget
представляет собой ActivityGroup
, а содержимое каждой вкладки представляет собой свое собственное Activity
.
Я предлагаю вам использовать библиотеку, предоставленную GreenDroid: http://android.cyrilmottier.com/?p=274
Просто взгляните на GDTabActivity, вы сможете настроить все и избавиться от этого бара.
http://android.cyrilmottier.com/medias/actionbar/action_bar_4.png
В вашем макете xml:
<TabWidget ...
android:tabStripEnabled="false" >
...
</TabWidget>