在tabHost上更改文本大小

5

我正在尝试使用两个选项卡的tabHost,它可以正常工作,但我想更改文本大小,我搜索了很多但没有找到不改变整个tab布局的内容,我只想更改文本大小,而不是更改背景或其他任何东西,我像这样添加我的选项卡:

tabHost.addTab(tabHost.newTabSpec("photos_tab").setIndicator(getString(R.string.userPhotos)).setContent(R.id.tab2));

当我尝试将TextView放入setIndicator中时,它可以工作并且我可以更改文本大小,但会更改其他所有内容,如点击、背景等等...所以我只想更改文本大小。
有任何想法吗?
附注:我没有扩展TabActivity,因此无法在AndroidManifest中更改主题或类似的内容。(我之前尝试过:如何在Android中更改tabhost的字体大小
谢谢。
1个回答

23

是的,您可以通过获取特定位置的子项并获取其textview以设置其文本大小来实现。

 TextView x = (TextView) tabHost.getTabWidget().getChildAt(0).findViewById(android.R.id.title);
    x.setTextSize(25);

非常感谢,它工作得非常好,但是当我设置指示器时有什么方法可以做到这一点吗? - kavain
我尝试使用Html.fromHtml(),但它无法与tabWidgets一起使用,所以目前唯一的选择是显式设置。 - Hardik4560
2
@thamerhatem 不行。在将TabSpec添加到TabHost之后,您必须执行此操作:tabHost.addTab(tabSpec) - Sebastian Hojas
它总是返回一个空指针异常。我找不到TextView。:( 帮帮我。 - princepiero
1
@princepiero,Sebastian是正确的,你需要在向选项卡主机添加规格后使用它。而且你必须为每个选项卡都这样做。 - Bhupinder

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接