Избавьтесь от строки в TabWidget
У меня есть простая вкладка со следующей компоновкой:
<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 всегда получал эффект черной линии и тени сверху (вы можете видеть его под кнопками):
![alt text]()
Вопрос: как я могу избавиться от этой строки? Где метод, который использует его в Android-источниках?
Ответы
Ответ 1
Применить специальную тему к вашей активности и исключить атрибут android: windowContentOverlay.
Определите тему в themes.xml:
<style name="YourTheme" parent="if you want">
...
<item name="android:windowContentOverlay">@null</item>
...
</style>
Применить тему приложения или действия в AndroidManifest.xml:
<application android:theme="@style/YourTheme"
... >
Надеюсь, это поможет. Это вызвало у меня много головной боли...
Ответ 2
В вашем макете xml:
<TabWidget ...
android:tabStripEnabled="false" >
...
</TabWidget>
Ответ 3
Кажется, что способ сделать это - вложить вкладку в LinerLayout...
Посмотрите здесь.
Ответ 4
К сожалению, вы не можете избавиться от него. Это результат реализации TabWidget
. Внутри TabWidget
находится ActivityGroup
, и содержимое каждой вкладки является собственным Activity
.
Ответ 5
Я предлагаю вам использовать библиотеку, предоставленную GrreenDroid: http://android.cyrilmottier.com/?p=274
Просто взгляните на GDTabActivity, вы сможете настроить все и избавиться от этого бара.
http://android.cyrilmottier.com/medias/actionbar/action_bar_4.png