工程下载 http://download.csdn.net/download/sqk1988/3747652
本文主要解决2个问题:
1.解决TabWidget中标签的图片和文字相互覆盖的情况:
//TabHost图片文字覆盖的问题:TabHost的Lab如果使用32x32的图片是没有这个问题的,使用稍大点的就有问题了, //,这里通过上移图标的坐标和缩小字体来解决这个问题。 RelativeLayout childOne = (RelativeLayout)tabWidget.getChildAt(0); System.out.println("sqkk"+childOne.getClass()); ((TextView)childOne.findViewById(android.R.id.title)).setTextSize(12); ((ImageView)childOne.findViewById(android.R.id.icon)).setPadding(0, -5, 0, 0);
2.让TabWidget置于底部,整个tabhost的总布局是LinearLayout,方向是vertical,总布局内分为上下2大部分,上面的布局是FrameLayout,装载各个Activity的容器,
下面的是TabWidget是标签部分。这样的显示便是内容在上,标签置底。如果想让标签在上,内容在下,可以颠倒布局文件中FramLayout和TabWidget的顺序
<?xml version="1.0" encoding="utf-8"?> <!-- id名字不能更改 整个tabhost的总布局是LinearLayout,方向是vertical,总布局内分为上下2大部分,上面的布局是FrameLayout,装载各个Activity的容器, 下面的是TabWidget是标签部分。这样的显示便是内容在上,标签置底。如果想让标签在上,内容在下,可以颠倒布局文件中FramLayout和TabWidget的顺序 --> <TabHost xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/tabhost" android:layout_width="fill_parent" android:layout_height="fill_parent" > <LinearLayout android:orientation="vertical" android:gravity="bottom" android:layout_width="fill_parent" android:layout_height="fill_parent" > <!-- FrameLayout是切换tab时,每个activity所占用的空间大小,帧布局是装载各个Activity的容器 --> <FrameLayout android:id="@android:id/tabcontent" android:layout_width="fill_parent" android:layout_height="370dip" > </FrameLayout> <!-- 标签部分 --> <TabWidget android:id="@android:id/tabs" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout> </TabHost>
工程下载: http://download.csdn.net/download/sqk1988/3747652