首先让我澄清一下,我已经提到了与“Android - TAbhost”相关的SO问题。
我已经在谷歌搜索“Android Tabhost”但未能找到解决方案。
我的问题是:
如果有< 3 tab,那就没关系了。 但 如果我们有4个选项卡,其指标标题为TabHost1,TabHost2,TabHost3,TabHost4)。但Tab中的这个标题并没有配上标签。所以有没有办法让标题文本(即指标)适合标签?
答案 0 :(得分:4)
我认为我们问题的根源在于框架代码中的某个地方。果然,我找到了一些线索:
首先,如果你查看TabWidget
code内部,你会看到你在setIndicator
中设置的标签被传递给一个名为LabelIndicatorStrategy
的内部类,它将负责视图的膨胀与选项卡顶部相关联。这种通货膨胀是使用xml文件tab_indicator.xml完成的。此布局基于RelativeLayout
,其中包含ImageView
和TextView
。如果你看一下textview的属性,你会发现它引用了android styles.xml中的一个样式。最后,你意识到我们有:
<item name="ellipsize">marquee</item>
<item name="singleLine">true</item>
所以,现在,2个选项:
首先,通过创建自己的样式来覆盖样式,在我看来,这将是非常轻松的方式,然后将这些属性更改为更适合您的内容。虽然结果可能不是很好。这将需要一些测试
或者,戴上你的手套并从TabWidget类复制代码,因为这里的另一个问题是我提到的内部类是......所以,如果我没有弄错的话就没有继承......所以我想,很多比styles.xml的方式更痛苦。
希望这会激励你,让我发布你得到的东西。我仍然感兴趣。
答案 1 :(得分:1)
我通过减小字体大小解决了上述问题,请检查以下代码 Style.xml
:
<resources>
<style name="MyTheme" parent="@android:style/Theme.Light">
<item name="android:tabWidgetStyle">@style/LightTabWidget</item>
</style>
<style name="LightTabWidget" parent="@android:style/Widget.TabWidget">
<item name="android:textSize">12px</item>
<item name="android:textColor">#1E90FF</item>
</style>
</resources>