2012-08-02 5 views
5

사용자가 내비게이션 목록에서 선택을 할 때 액션 바의 배경색을 변경하고 싶습니다.ActionBar 배경색 변경 내비게이션 목록의 코드

현재, 내 코드는 다음과 같습니다

@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을 선택, 그것은 흰색으로 액션 바의 색상을 변경합니다.

enter image description here
두 번째로 탐색 목록에서 항목 1을 클릭하면 아무런 문제가 없습니다.

enter image description here
왜이 문제가 무엇이며 어떻게 해결할 수 있습니까? 도와 주셔서 감사합니다! 이 코드를 사용

+0

혹시이 문제가 해결 되었습니까? –

답변

6

이 시도 :

myActivity.invalidateOptionsMenu(); 
10

시도 :

ColorDrawable colorDrawable = new ColorDrawable(Color.parseColor("#ffFEBB31")); 
actionBar.setBackgroundDrawable(colorDrawable); 
+0

원래 포스터가 한 요청으로이 내용은 색상을 선택하는 약간 다른 방식으로, 기본적으로 같은 것입니다. 그것은 어떤 작업을 수행 문제를 해결하는 것. –

+0

이전에 사용했는데 작동합니다. Tykin이 언급 한 16 진법을 사용하도록 변경하면 질문의 내용이 그대로 나타납니다. 아마도 누군가 Tykin의 방법이이 상황에서 작동하지 않는 이유에 대한 통찰력을 제공 할 수 있습니다. – Trevor

+0

이것은 작동합니다. 방금 0x로 변경 # 그리고 그것은 괜찮 았는데, 어떤 생각? –

0

나는이 같은 문제가되었다.

Visual Studio 등의 Xamarin 사용자의 경우.

는 활동 클래스에 ...... 방금 된 setContentView (Resource.Layou 후이를 붙여주세요. 당신의 필요하다고 간주 액션 바 변수에 대한 자세한처럼

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

당신은 그것을 변경 될 수 있습니다 .

덕분에 희망이 도움이되지 않습니다.