【问题标题】:Disable/enable tabs: change color to original禁用/启用选项卡:将颜色更改为原始颜色
【发布时间】:2011-07-22 08:10:23
【问题描述】:

我有以下代码:

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

当我再次启用它时,如何将已禁用选项卡的颜色恢复为原始颜色(带有渐变和其他东西)?

【问题讨论】:

    标签: android colors tabs android-tabhost


    【解决方案1】:

    如果你使用 Drawable 作为背景,你可以使用:

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

    一旦你启用它:

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

    【讨论】:

    • 谢谢,我以为我尝试过类似的方法,但出错了。当我这样做时它仍然有效!
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2013-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多