Подтвердить что ты не робот

Избавьтесь от строки в 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-источниках?

4b9b3361

Ответ 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.