У меня есть приложение с MainActivity, которое расширяет TabActivity (я знаю, что он устарел, но слишком много, чтобы изменить все приложение).Изменить цвет вкладок в зависимости от того, какая вкладка выбрана
Так что в моем приложении я использую tabhost создать 3 вкладки, как это:
TabHost tabHost = (TabHost) findViewById(android.R.id.tabhost);
TabSpec firstTabSpec = tabHost.newTabSpec("tid1");
TabSpec secondTabSpec = tabHost.newTabSpec("tid2");
TabSpec thirdTabSpec = tabHost.newTabSpec("tid3");
firstTabSpec.setIndicator("tab1").setContent(
new Intent(this, tab1.class));
secondTabSpec.setIndicator("tab2").setContent(
new Intent(this, tab2.class));
thirdTabSpec.setIndicator("tab3").setContent(
new Intent(this, tab3.class));
/* Add tabSpec to the TabHost to display. */
tabHost.addTab(firstTabSpec);
tabHost.addTab(secondTabSpec);
tabHost.addTab(thirdTabSpec);
//Changing the tabs text color on the tabs
for(int i=0;i<tabHost.getTabWidget().getChildCount();i++)
{
TextView tv = (TextView) tabHost.getTabWidget().getChildAt(i).findViewById(android.R.id.title);
tv.setTextColor(Color.parseColor("#ffffff"));
}
// remove divider
tabHost.getTabWidget().setDividerDrawable(null);
tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#90a4ae"));
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#607d8b"));
tabHost.getTabWidget().getChildAt(2).setBackgroundColor(Color.parseColor("#607d8b"));
Так что мой код создает 3 вкладки, которые ссылаются на 3-х различных видов деятельности и устанавливает цвет вкладок. Первая вкладка сначала загружает другой цвет, чем две другие.
Я хочу, чтобы цвет вкладок менялся в зависимости от выбранного. Итак, когда я нажимаю вторую вкладку, я хочу, чтобы первый получил цвет # 607d8b, а второй получил # 90a4ae. То же самое для третьего.
Пытался внедрить OnTabChangeListener, но не смог заставить его работать. Пробовал так:
tabHost.getTabWidget().getChildAt(0).setBackgroundColor(Color.parseColor("#90a4ae"));
tabHost.getTabWidget().getChildAt(1).setBackgroundColor(Color.parseColor("#607d8b"));
tabHost.getTabWidget().getChildAt(2).setBackgroundColor(Color.parseColor("#607d8b"));
с измененными цветами внутри каждой загруженной вкладке активности, но я получаю сообщение об ошибке, что он не может разрешить tabhost (как это необходимо, так как это определено в MainActivity
Thanx. много! Он работал как шарм! Исправлены цвета по моему вкусу, и теперь это прекрасно! – duk3r
всегда приветствуется. –