Android 禁用/启用选项卡:将颜色更改为原始颜色
我有以下代码:Android 禁用/启用选项卡:将颜色更改为原始颜色,android,colors,tabs,android-tabhost,Android,Colors,Tabs,Android Tabhost,我有以下代码: \\Disable tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(false); tabHost.getTabWidget().getChildTabViewAt(3).setBackgroundColor(Color.rgb(102, 102, 102)); 以及: 当我再次启用时,如何将禁用选项卡的颜色恢复为其原始颜色(使用渐变和其他颜色)?您无法从原始启用选项卡提取颜色值,因为它使用可绘制的颜色。然而,我不相
\\Disable
tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(false);
tabHost.getTabWidget().getChildTabViewAt(3).setBackgroundColor(Color.rgb(102, 102, 102));
以及:
当我再次启用时,如何将禁用选项卡的颜色恢复为其原始颜色(使用渐变和其他颜色)?您无法从原始启用选项卡提取颜色值,因为它使用可绘制的颜色。然而,我不相信有任何东西会阻止您在启用/禁用状态下在可绘制和颜色之间切换。因此,我的建议是使用View.getBackground()从选项卡视图中存储原始背景可绘制,当再次启用选项卡时,您可以将存储的可绘制内容传递给View.setBackgroundDrawable(Drawable)。您无法从原始启用的选项卡中提取颜色值,因为它使用可绘制内容。然而,我不相信有任何东西会阻止您在启用/禁用状态下在可绘制和颜色之间切换。因此,我的建议是使用View.getBackground()存储选项卡视图中的原始可绘制背景,当再次启用选项卡时,您可以将存储的可绘制背景传递给View.setBackgroundDrawable(Drawable)。如果将可绘制背景用作背景,则可以使用:
savedBackground = tabHost.getTabWidget().getChildTabViewAt(3).getBackground();
// Disable your tab
一旦启用它:
tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(true);
tabHost.getTabWidget().getChildTabViewAt(3).getChildTabViewAt(3).setBackgroundDrawable (savedBackground );
如果使用可绘制背景,则可以使用:
savedBackground = tabHost.getTabWidget().getChildTabViewAt(3).getBackground();
// Disable your tab
一旦启用它:
tabHost.getTabWidget().getChildTabViewAt(3).setEnabled(true);
tabHost.getTabWidget().getChildTabViewAt(3).getChildTabViewAt(3).setBackgroundDrawable (savedBackground );
谢谢,我想我试过类似的方法,但有错误。当我这样做的时候,它无论如何都能工作!谢谢,我想我试过类似的方法,但有错误。当我这样做的时候,它无论如何都能工作!