Избавьтесь от линии под TabWidget - PullRequest
12 голосов
/ 18 августа 2010

У меня есть простая вкладка активности со следующим макетом:

    <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?

Ответы [ 5 ]

17 голосов
/ 09 сентября 2010

Примените пользовательскую тему к своей деятельности и обнулите атрибут 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"
  ... >

Надеюсь, это поможет.Это вызвало у меня сильную головную боль ...

8 голосов
/ 27 августа 2010

В вашем макете xml:

<TabWidget ... 
    android:tabStripEnabled="false" >

 ... 

</TabWidget>
0 голосов
/ 23 августа 2010

К сожалению, от этого не избавиться. Это результат реализации TabWidget. Внутренне TabWidget является ActivityGroup, а содержимое каждой вкладки является собственным Activity.

0 голосов
/ 25 августа 2010

Я предлагаю вам использовать библиотеку, предоставленную GrreenDroid: http://android.cyrilmottier.com/?p=274

Просто взгляните на GDTabActivity, вы сможете настроить все и избавиться от этого бара.

http://android.cyrilmottier.com/medias/actionbar/action_bar_4.png

0 голосов
/ 18 августа 2010

Кажется, что способ сделать это состоит в том, чтобы вкладывать вкладки в LinerLayout ... Смотрите здесь.

...