当我改变actionBar的颜色可绘时它是白色的

时间:2013-06-16 22:21:36

标签: android

我正在使用这个简单的代码:

ActionBar bar = this.getActionBar();
bar.setBackgroundDrawable(new ColorDrawable(0xFF99CC00));

单击imageView时会触发此代码。

这应该将ActionBar的背景颜色更改为绿色,但它显示为白色(它可能会删除颜色吗?)

你们知道为什么会这样吗?

但是,如果我在onCreate方法上执行此操作,则会进行更改。

(当我开始此活动时,我会检查颜色或其他颜色):

if (this.isAccepted == -1){
    //nothing
    } else if (this.isAccepted == 0){
        //vermell
        ActionBar bar = this.getActionBar();
        bar.setBackgroundDrawable(new ColorDrawable(0xFFFF4444));
    } else if (this.isAccepted == 1){
        ActionBar bar = this.getActionBar();
        bar.setBackgroundDrawable(new ColorDrawable(0xFF99CC00));

正如您所看到的,代码完全相同,但在单击imageView后运行代码时,代码没有被更改。

编辑: 实际上是否可以动态编辑操作栏?或者只是在启动应用程序时?

EDIT2:

我尝试过onCreate,将条形图设置为变量,然后尝试访问它,但它完全相同。

EDIT3:

进行一些修改以发布帖子。这太奇怪了。我检查过文档,但没有提到“你不能改变两次背景”之类的东西。

也许我要使它无效?我真的不知道......该死的。

Edit4:试图碰到这个......我还没有找到答案......

2 个答案:

答案 0 :(得分:4)

确定。正如我在其中一个编辑中所说,你要请求actionBar。由于我们没有方法,我们可以使用解决方法:

this.bar.setDisplayShowTitleEnabled(false);
this.bar.setDisplayShowTitleEnabled(true);

这很有效。

答案 1 :(得分:1)

您当然可以通过编程方式更改ActionBar颜色。我通常在onCreateOptionsMenu方法中执行此操作。这很简单:

actionBar = getActionBar();
actionBar.setBackgroundDrawable(new ColorDrawable(getResources().getColor(R.color.Amethyst)));

注意:在项目的res / values / colors.xml文件中设置颜色名称

相关问题