2011-09-02 21 views
1

我在底部有自定義TabWidgets的TabActivity。我希望能夠添加5個以上的選項卡。不像MenuBar,它動態地添加了一個「更多」按鈕,Tabs只是調整大小,看起來非常可怕。所以我第一次嘗試將我的TabWidgets封裝到Horizo​​ntalScrollView中。問題是,我有一個ListView作爲TabContent,它的最後一項似乎隱藏在我的TabWidgets後面。 這是我的TabView的在TabWidged「搶斷」空間上的Horizo​​natalScrollView

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/main_linlay_parent" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TabHost 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <RelativeLayout 
     android:id="@+id/main_tablinear" 
     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"/> 
     <HorizontalScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:fillViewport="true" 
     android:scrollbars="none" 
     android:layout_alignParentBottom="true"> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center"/> 
     </HorizontalScrollView> 
    </RelativeLayout> 
    </TabHost> 
</LinearLayout> 

我做錯了什麼,我佈局的佈局?有更好的方法來應用4個以上的標籤嗎?雖然我可以看到4個Tabs與我的Nexus-S很好,但我認爲他們在Wildfire上已經很難看了。任何想法讚賞

+0

如果添加4個以上的選項卡,它是否只開始滾動?我有5個選項卡,它仍然擠壓... –

回答

0

我解決我的問題嘍!我認爲它可以幫助其他用戶看到解決辦法:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/main_linlay_parent" 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <TabHost 
    android:id="@android:id/tabhost" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <RelativeLayout 
     android:id="@+id/main_tablinear" 
     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" 
     android:layout_marginBottom="50dip"/> 
     <!-- note: margin bottom 50 dip above: 
      its exactly the size of my custom TabWidget --> 
     <HorizontalScrollView 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:fillViewport="true" 
     android:scrollbars="none" 
     android:layout_alignParentBottom="true"> 
     <TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_gravity="center"/> 
     </HorizontalScrollView> 
    </RelativeLayout> 
    </TabHost> 
</LinearLayout> 
0

試試這個。它的工作對我來說:

代碼:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout android:layout_width="fill_parent" 
android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android"> 
<TabHost android:layout_weight="1" 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"> 
     <HorizontalScrollView android:layout_width="wrap_content" 
      android:layout_height="wrap_content"> 
      <LinearLayout android:layout_height="fill_parent" 
       android:orientation="horizontal" android:layout_width="fill_parent"> 
       <TabWidget android:layout_height="wrap_content" 
        android:id="@android:id/tabs" android:isScrollContainer="true" 
        android:layout_width="fill_parent" android:scrollbars="horizontal"></TabWidget> 
      </LinearLayout> 
     </HorizontalScrollView> 
     <FrameLayout android:layout_width="fill_parent" 
      android:layout_height="fill_parent" android:id="@android:id/tabcontent"> 
      <LinearLayout android:layout_width="fill_parent" 
       android:layout_height="fill_parent" android:id="@+id/tab1"></LinearLayout> 
      <LinearLayout android:layout_width="fill_parent" 
       android:layout_height="fill_parent" android:id="@+id/tab2"></LinearLayout> 
      <LinearLayout android:layout_width="fill_parent" 
       android:layout_height="fill_parent" android:id="@+id/tab3"></LinearLayout> 
      <LinearLayout android:layout_width="fill_parent" 
       android:layout_height="fill_parent" android:id="@+id/tab4"></LinearLayout> 
      <LinearLayout android:layout_width="fill_parent" 
       android:layout_height="fill_parent" android:id="@+id/tab5"></LinearLayout> 
     </FrameLayout> 
    </LinearLayout> 
</TabHost></LinearLayout> 
+0

它適合你嗎? –

+0

什麼是帶有id/tabX的LinearLayouts?我使用TabSpecs以編程方式在Java中添加Tabs –

+0

這僅僅是一個例子。當然你可以刪除它們。 –