4

首先让我澄清一下,我已经提到了与“Android - TAbhost”相关的 SO 问题。

我已经完成了有关“Android Tabhost”的谷歌搜索,但未能找到解决方案。

我的问题是:

如果有 <3 个标签,那很好。但如果我们有 4 个标签,其指标标题为 TabHost1、TabHost2、TabHost3、TabHost4)。但是 Tab 中的这个标题不适合 tab。那么有什么方法可以将标题文本(即指示器)放入选项卡内?

4

2 回答 2

4

我认为我们问题的根源在于框架的代码中。果然,我发现了一些线索:

首先,如果您查看TabWidget代码内部,您会看到您设置的标签setIndicator被传递给一个名为的内部类,该类LabelIndicatorStrategy将负责膨胀与选项卡顶部相关联的视图。这种膨胀是使用 xml 文件tab_indicator.xml完成的。此布局基于RelativeLayout包含 anImageView和 a TextView。如果您查看 textview 的属性,您会发现它引用了 android styles.xml中的样式。最后,你意识到我们有:

<item name="ellipsize">marquee</item>
<item name="singleLine">true</item>

所以,现在,有两个选择:
首先,通过创建自己的样式来覆盖样式,在我看来这将是一种真正轻松的方式,然后将这些属性更改为更适合您的东西。虽然结果可能不是很好。这将需要一些测试。
或者,戴上手套并从 TabWidget 类中复制代码,因为这里的另一个问题是我提到的内部类是...... PRIVATE 所以,如果我没记错的话,不可能继承......所以我想,很多比styles.xml 的方式更痛苦。希望这会激励你,请让我发布你得到的东西。我还是有兴趣的。

于 2010-08-10T12:22:57.700 回答
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>
于 2010-10-04T08:37:55.390 回答