2012-07-14 54 views
1

我在使用TextViews作爲TabHost上的指標。我使用文本視圖的自定義背景,但是我對文本顏色不做任何處理。在我的活動的onCreate方法中,我沒有問題設置當前選項卡。Android TabHost初始選項卡的文本顏色不正確

當我啓動活動時,選定選項卡的背景顯示正確,選項卡的內容也是正確顯示,但兩個選項卡的文本顏色初始爲淺灰色。但是,一旦我點擊任一選項卡,選定選項卡的文本顏色就會變黑。我似乎無法找到以編程方式選擇選項卡的方式,以便將文本顏色更新爲黑色,就像您實際單擊選項卡時所做的那樣。我想:

  • 的標籤主機
  • 呼籲setCurrentTab上的標籤控件
  • 呼籲focusCurrentTab上的標籤控件
  • 上的指示燈文本視圖
  • 電話呼叫的setSelected(真)的調用setCurrentTab setSelected(true)在選項卡小部件的子視圖

總之,我不想應用自定義文本顏色。我只是希望它使用默認主題的顏色,但是我希望在編程選擇它之後選項卡的狀態與點擊它之後的狀態完全相同。

回答

4

我正在使用MonoDroid看到相同的問題。

// Set current tab to ScheduleTab 
TabHost.CurrentTab = 1; 
// TODO Focus not working completely 
TabHost.TabWidget.FocusCurrentTab(1); 

設置了正確的選項卡並處於活動狀態,但是文本顏色是淺灰色而不是黑色。如果使用觸摸輸入來選擇選項卡,則文本顏色會變爲黑色,但在以編程方式進行設置時不會變爲黑色。

底部條形指示器也正確渲染,只是不是文本顏色。

我發現的修復是創建並使用顯式選擇器來設置文本顏色。

繪製/ TabTextColors.xml

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_selected="true" android:color="#444"/> 
    <item android:state_focused="true" android:color="#444"/> 
    <item android:state_pressed="true" android:color="#444"/> 
    <item android:color="#ccc"/> 
</selector> 

然後從我的標籤視圖引用它。

<TextView 
     android:id="@+id/tabsText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:gravity="center" 
     android:padding="10dip" 
     android:text="TITLE" 
     android:textSize="13dip" 
     android:textStyle="bold" 
     android:textColor="@drawable/TabTextColors" /> 
相關問題