5

当用户在导航列表中选择一个选项时,我想更改操作栏背景的颜色。

目前,我的代码如下所示:

@Override
    public boolean onNavigationItemSelected(int itemPosition, long itemId) {
        ColorDrawable colorDrawable = new ColorDrawable();
        ActionBar actionBar = getActionBar();
        if(itemPosition == 0)
        {
            colorDrawable.setColor(0xffFEBB31);
            actionBar.setBackgroundDrawable(colorDrawable);
            return true;
        }
        if(itemPosition == 1)
        {
            colorDrawable.setColor(0xff9ACC00);
            actionBar.setBackgroundDrawable(colorDrawable);
            return true;
        }
        return false;
    }

但是,当我第一次在导航列表中选择 itemPosition 1 时,它会将 ActionBar 颜色更改为白色。

在此处输入图像描述
第二次单击导航列表中的 itemPosition 1 时,我没有问题。

在此处输入图像描述
谁能告诉我这是为什么以及如何解决这个问题?感谢您的帮助!

4

3 回答 3

10

尝试使用此代码:

ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffFEBB31"));
actionBar.setBackgroundDrawable(colorDrawable); 
于 2013-03-27T00:33:38.130 回答
6

尝试这个:

myActivity.invalidateOptionsMenu();
于 2013-05-28T04:20:56.963 回答
0

我遇到了同样的问题。

对于 Visual Studio 等中的 Xamarin 用户。

请在活动类中的 SetContentView(Resource.Layou...... 之后粘贴此内容。

// Setting ActionBar (Toolbar) background color natively var actionBar = this.ActionBar; actionBar.SetBackgroundDrawable(new ColorDrawable(Color.Black));

您可以根据需要对 actionBar 变量进行更多更改。

谢谢希望这会有所帮助。

于 2016-10-31T12:40:57.957 回答