Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 禁用/启用选项卡:将颜色更改为原始颜色_Android_Colors_Tabs_Android Tabhost - Fatal编程技术网

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 );

谢谢,我想我试过类似的方法,但有错误。当我这样做的时候,它无论如何都能工作!谢谢,我想我试过类似的方法,但有错误。当我这样做的时候,它无论如何都能工作!