0

我尋找文本的方式粗體,基本上Tab主機使文本粗體。TabHost Android使文本粗體

樣本圖像如下

enter image description here

下面是我的代碼。

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); 
      } 
     } 
    }); 
+0

你的意思是讓所選項目變爲粗體還是全部? –

回答

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> 
+0

你能更清楚我應該在哪裏添加代碼。我在styles.xml中這樣做了,它不起作用。有沒有辦法在JAVA中做到這一點?謝謝你的幫助 – user1141584

1

我發現這是最簡單的方法設置樣式:
後您添加標籤到您的TabHost請執行以下操作:

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

「我」只是新選項卡的索引。在我的情況下,我正在使用for循環。 之後,它很簡單,只是這樣做:

textView .setTypeface(null, Typeface.BOLD); 

希望這有助於。