之前在使用TabHost的时候一直没有注意,当我在TabContent中添加GridView或者ListView的时候,如果里面的内容太多会将TabWidget挤出屏幕,想了好久没找出原因,一直以为是TabContent里面布局的问题,后来从最初的XML中去找,发现了原因所在,原来使用的时候,TabHost里面使用了相对布局,我只要将FrameLayout设置为android:layout_above="@android:id/tabs" 就可以,这种小错误都弄了这么久才搞定,提醒自己以后一定要细心.
<?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#343434" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
</TabWidget>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@android:id/tabs" >
</FrameLayout>
</RelativeLayout>
</TabHost>
其中,有三个属性必须要注意:
TabHost android:id="@android:id/tabhost"
TabWidget android:id="@android:id/tabs"
FrameLayout android:id="@android:id/tabcontent" 这三个属性一定要有.
TabWidget 中android:layout_alignParentBottom="true" 设置Tab栏在底部。