Android 从导航列表更改代码中的ActionBar背景色
我想在用户在导航列表中选择选项时更改操作栏背景的颜色 目前,我的代码如下所示:Android 从导航列表更改代码中的ActionBar背景色,android,android-actionbar,Android,Android Actionbar,我想在用户在导航列表中选择选项时更改操作栏背景的颜色 目前,我的代码如下所示: @Override public boolean onNavigationItemSelected(int itemPosition, long itemId) { ColorDrawable colorDrawable = new ColorDrawable(); ActionBar actionBar = getActionBar(); if(itemPos
@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时,我没有问题
有人能告诉我为什么会这样,以及我如何解决这个问题吗?谢谢你的帮助 尝试使用以下代码:
ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffFEBB31"));
actionBar.setBackgroundDrawable(colorDrawable);
试试这个:
myActivity.invalidateOptionsMenu();
我也有同样的问题 适用于VisualStudio等中的Xamarin用户 请在活动类中的SetContentView(Resource.Layou…)之后粘贴此内容
//本机设置ActionBar(工具栏)背景色
var actionBar=this.actionBar;
actionBar.SetBackgroundDrawable(新的彩色Drawable(Color.Black));
您可以根据需要对actionBar变量进行更改
谢谢,希望这会有所帮助。这与最初的海报基本相同,只是选择颜色的方式略有不同。这并不能解决问题。我以前用过这个方法,但效果很好。将它改为使用泰金提到的十六进制方法,正好符合问题的说明。也许有人可以提供关于为什么Tykin的方法在这种情况下不起作用的一些见解。这是有效的。我刚刚将0x改为#,它工作得很好,知道为什么吗?@JMint文档声明“支持的格式是:#RRGGBB#AARRGGBB‘红色’、‘蓝色’…”0x是您在寻找
int
作为参数时会使用的格式(例如使用方法公共静态int-rgb(int-red,int-green,int-blue)
)。查看更多信息。您是否解决过此问题?