禁用/启用标签:将颜色更改为原始标签

时间:2011-03-24 17:29:13

标签: android colors tabs android-tabhost

我有以下代码:

\\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 个答案:

答案 0 :(得分:3)

如果您使用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 :(得分:1)

您无法从原始启用的标签中提取“颜色”值,因为它使用了Drawable。但是,我不相信有什么阻止你在Drawable和Color之间切换启用/禁用状态。所以我的建议是使用View.getBackground()从选项卡View中存储原始背景Drawable,当再次启用选项卡时,您可以将存储的drawable传递给View.setBackgroundDrawable(Drawable)。