TabHost中的标签页众多,所以要做成横向可滚动的,在TabWidget外加一层HorizontalScrollView.
由于TabHost中的item是TextView,并且每个TextView的宽度不一样,这样就会导致没动到最后的时候会多出来一段空白,具体的原因如下:
TabWidget has measureWithLargestChild set to true by default, which means it is using the widest of tabs to calculate the overall width of the internal LinearLayout that TabWidget uses when it measures itself. If tabs are of different length this will lead to that internal LinearLayout having some extra space on the end from the difference between the shorter tabs and widest tab. So the solution is: add android:measureWithLargestChild="false"
to TabWidget layout.
xml中的代码片段如下:
<HorizontalScrollView android:layout_width="match_parent" android:layout_height="wrap_content" android:fillViewport="true" android:scrollbars="none"> <TabWidget android:id="@android:id/tabs" android:layout_width="wrap_content" android:layout_height="wrap_content" android:measureWithLargestChild="false" android:divider="@null" /> </HorizontalScrollView>