Facebook上的Tabhost for Android
-
28-09-2019 - |
题
任何人都知道Facebook是如何做到的:
据我所知,我们无法更改Tabhost的高度。我猜他们在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绘制可绘制的项目选择器(因此,您需要为选定,默认,按下和未选择的图像具有图像)。 Facebook应用程序为默认选项卡使用了一些白色可绘制图像,并为未选择的选项卡绘制了蓝色渐变。
查看Google IO计划应用程序的完整示例: http://code.google.com/p/iosched/ (特别是TrackDetailActivity.java)
其他提示
有人认为我认为正确的答案,但出于某种原因将其删除...
问题的高度不是 TabHost
, ,但是 TabWidget
.
尝试使用版本 setIndicator()
那需要 View
而不仅仅是 String
或者 String
加上可绘制的资源。虽然我还没有玩过这个问题,但我的理解是它可以很好地解决这个问题。
不过,要小心,您不要结束太难敲击的标签。
不隶属于 StackOverflow