0

我正在寻找文本粗体的方式,基本上是 Tab Host 使文本粗体。

示例图像如下

在此处输入图像描述

下面是我的代码。

tabHost.setOnTabChangedListener(new OnTabChangeListener()
    {
        @Override
        public void onTabChanged(String tabId) 
        {
            if (tabId.equals("READING")) 
            {
                for(int i=0;i< tabHost.getTabWidget().getChildCount();i++)
                {
                    //unselected
                    tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#E6A9EC")); 
                }
                // selected
                tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.WHITE);
            }
            else
            {
                for(int i=0;i< tabHost.getTabWidget().getChildCount();i++)
                {
                 //unselected
                    tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#E6A9EC"));
                }
                // selected
                tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.WHITE);
            }
        }
   });
4

2 回答 2

1

我发现这是最简单的方法:
将选项卡添加到 TabHost 后,请执行以下操作:

TextView textView = (TextView) tabHost.getTabWidget().getChildAt(i)
                .findViewById(android.R.id.title); 

'i' 只是新标签的索引。就我而言,我使用的是 for 循环。之后非常简单,只需执行以下操作:

textView .setTypeface(null, Typeface.BOLD);

希望这可以帮助。

于 2013-01-22T14:29:54.933 回答
1

您可以在自定义主题更改中对其进行样式设置

<item name="android:tabWidgetStyle">@android:style/Widget.TabWidget</item> 

<style name="Widget.TabWidget">
        <item name="android:textAppearance">@style/TextAppearance.Widget.TabWidget</item>
        <item name="android:ellipsize">marquee</item>
        <item name="android:singleLine">true</item>
</style>  


<style name="TextAppearance.Widget.TabWidget">
    <item name="android:textSize">14sp</item>
    <item name="android:textStyle">bold</item>
    <item name="android:textColor">@android:color/tab_indicator_text</item>
</style>   
于 2013-01-01T04:29:28.007 回答