Белый цвет переднего плана TabWidget?

Я не знаю, что я сделал, но в течение некоторого времени у моей TabWidget были белые вкладки, которые выглядели очень красиво. В моем проекте я никогда не устанавливал цвет темы или фона / переднего плана. В следующий раз, когда я скомпилировал его, он вернется к серым вкладкам. В моем приложении используется темная тема по умолчанию. Даже если я задаю тему приложения для освещения, вкладки по-прежнему являются серыми. Таким образом, очевидно, что это изменило цвет вкладок. Кто-нибудь знает, как это сделать?

Solutions Collecting From Web of "Белый цвет переднего плана TabWidget?"

У меня возникла проблема из-за ошибки в легкой теме Android 1.6 (текст индикатора табуляции белый). Мне удалось переопределить тему по умолчанию следующим образом:

  1. Я создал пользовательскую тему, унаследованную от темы по умолчанию:

styles.xml :

 <style name="MyTheme" parent="@android:style/Theme.Light"> <item name="android:tabWidgetStyle">@style/LightTabWidget</item> </style> <style name="LightTabWidget" parent="@android:style/Widget.TabWidget"> <!-- set textColor to red, so you can verify that it applied. --> <item name="android:textColor">#f00</item> </style> 

Затем я просто применил эту тему к моему приложению, добавив android:theme="@style/MyTheme" в элемент <application /> моего AndroidManifest.xml .

Проверьте этот ответ: Background в виджетах вкладки игнорировать масштабирование

Вы также можете обратиться к пакету android.graphics.drawable

В своем коде вы можете установить фон для своих вкладок следующим образом:

 tabHost.getTabWidget().getChildAt(0).setBackgroundResource( android.R.color.white); 

В public void onCreate(Bundle savedInstanceState)

  `tabHost = getTabHost(); tabHost.setOnTabChangedListener(this); tabHost.setCurrentTab(0); setTabColor();` 

Чем у слушателя:

Public void onTabChanged (String tabId) {setTabColor ();

Наконец, функцию, которая также устанавливает передний и задний фон:

 public void setTabColor() { // set foreground color: for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) { RelativeLayout rl = (RelativeLayout) tabHost.getTabWidget().getChildAt(i); ImageView imageView = (ImageView) rl.getChildAt(0);// change it if you want it TextView textView = (TextView) rl.getChildAt(1);// textView.setTextColor(Color.parseColor("#FFFFFF")); } // set background color: for (int i = 0; i < tabHost.getTabWidget().getChildCount(); i++) { tabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.parseColor("#010101")); // unselected } tabHost.getTabWidget().getChildAt(tabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#121288")); // selected } 

В onCreated ():

  tabHost.setCurrentTab(0); // Set tabs text color to white: TabWidget tabWidget = tabHost.getTabWidget(); int whiteColor = getResources().getColor(R.color.white); int someOtherColor = getResources().getColor(R.color.someOtherColor); for(int i = 0; i < tabWidget.getChildCount(); i++){ View tabWidgetChild = tabWidget.getChildAt(i); if(tabWidgetChild instanceof TextView){ ((TextView) tabWidgetChild).setTextColor(whiteColor); } else if(tabWidgetChild instanceof Button){ ((Button) tabWidgetChild).setTextColor(whiteColor); } else if(tabWidgetChild instanceof ViewGroup){ ViewGroup vg = (ViewGroup)tabWidgetChild; for(int y = 0; y < vg.getChildCount(); y++){ View vgChild = vg.getChildAt(y); if(vgChild instanceof TextView){ ((TextView) vgChild).setTextColor(whiteColor); } } vg.setBackgroundColor(someOtherColor); } }