2011-09-02 40 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

这仅仅是一个例子。当然你可以删除它们。 –