Отключить / включить вкладки: изменить цвет на оригинальный - PullRequest
1 голос
/ 24 марта 2011

У меня есть следующий код:

\\Disable
tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(false);
tabHost.getTabWidget().getChildTabViewAt(3).setBackgroundColor(Color.rgb(102, 102, 102));

И

\\Enable
tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(true);
\\HOWTO?

Как я могу вернуть цвет отключенной вкладки обратно к ее первоначальному цвету (с градиентом и прочим), когда я включу его снова?

Ответы [ 2 ]

3 голосов
/ 24 марта 2011

Если вы используете Drawable в качестве фона, вы можете использовать:

savedBackground = tabHost.getTabWidget().getChildTabViewAt(3).getBackground();
// Disable your tab

И как только вы включите его:

tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(true);
tabHost.getTabWidget().getChildTabViewAt(3).getChildTabViewAt(3).setBackgroundDrawable (savedBackground );
1 голос
/ 24 марта 2011

Вы не можете извлечь значение Color из исходной включенной вкладки, так как она использует Drawable.Однако я не верю, что что-то мешает вам переключаться между Drawable и Color для включенных / отключенных состояний.Поэтому я предлагаю сохранить исходный фон Drawable на вкладке View, используя View.getBackground (), и когда придет время снова включить вкладку, вы можете передать этот сохраненный объект drawable в View.setBackgroundDrawable (Drawable).

...