任何人都知道facebook是如何做到这一点的:
据我所知,我们无法更改 tabhost 的高度。我猜他们将“Frank Cho”视图放在标签主机上,使其看起来更短,但我可能错了。有谁知道发生了什么?
任何人都知道facebook是如何做到这一点的:
据我所知,我们无法更改 tabhost 的高度。我猜他们将“Frank Cho”视图放在标签主机上,使其看起来更短,但我可能错了。有谁知道发生了什么?
您实际上可以拥有自定义外观的选项卡小部件。您需要将选项卡指示器设置为一些自定义布局(使用您的可绘制对象),您应该一切顺利。
这是一个半示例:
final TabHost host = getTabHost();
final TextView indicator = (TextView) getLayoutInflater().inflate(
R.layout.tab_indicator,
getTabWidget(), false);
indicator.setText("Tab title");
host.addTab(host.newTabSpec("The tab tag")
.setIndicator(indicator)
.setContent([put your content here]));
}
tab_indicator 布局可能如下所示:
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tab_label"
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="center"
android:textSize="14sp"
android:textStyle="bold"
android:minHeight="38dp"
android:background="@drawable/minitab" />
minitab drawable 是一个可绘制项目选择器(因此您需要有一个用于选中、默认、按下和未选中的图像)。facebook 应用程序为默认选项卡使用了一些白色可绘制图像,为未选择的选项卡使用了蓝色渐变可绘制图像。
查看 Google IO Schedule 应用程序以获取完整的工作示例:http ://code.google.com/p/iosched/ (特别是 TrackDetailActivity.java)
其他人有我认为正确的答案,但由于某种原因将其删除...
有问题的高度不是 的TabHost
,而是 的TabWidget
。
尝试使用它的版本,setIndicator()
而View
不仅仅是一个String
或String
加上可绘制资源。虽然我还没有玩过这个,但我的理解是它很好地解决了这个问题。
不过要小心,不要以太难点击的标签结束。