2011-03-24 28 views
1

我有下面的代碼:禁用/啓用選項卡:顏色改變,原來

\\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? 

我如何能恢復的禁用標籤的顏色回到它的原顏色(與漸變和東西),當我再次啓用它?

回答

3

如果使用可繪製作爲背景,你可以使用:

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

而一旦你打開它:

tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(true); 
tabHost.getTabWidget().getChildTabViewAt(3).getChildTabViewAt(3).setBackgroundDrawable (savedBackground); 
+0

謝謝,我以爲我嘗試過這樣的事情,但有錯誤。無論如何,當我這樣做時,它就會起作用! – nhaarman 2011-03-24 17:58:01

1

您無法從原始啓用選項卡中提取顏色值,因爲它使用Drawable。不過,我不相信任何東西會阻止您在啓用/禁用狀態之間切換Drawable和Color。所以我的建議是使用View.getBackground()從標籤View中存儲原始背景Drawable,當它再次啓用標籤時,您可以將存儲的drawable傳遞給View.setBackgroundDrawable(Drawable)。

+0

謝謝,它的工作原理(顯然相同的答案@moss) – nhaarman 2011-03-24 17:58:42

+0

+1相同在同一時間回答:D尼斯hehehe – Moss 2011-03-28 18:07:37

相關問題