2015-01-14 5 views
1

작업 표시 줄 메뉴 항목의 배경색을 동적으로 조정해야하는 응용 프로그램을 구현했습니다. 다음 코드를 사용하여 작업 표시 줄의 색상을 동적으로 변경할 수 있다는 것을 알고 있습니다. 그러나 작업 표시 줄 메뉴 항목에는 작동하지 않습니다. 이것 좀 도와주세요. 프로그래밍 방식으로 작업 표시 줄 메뉴 항목의 색상을 변경하는 방법

ActionBar bar = getActionBar(); 
bar.setBackgroundDrawable(new ColorDrawable("COLOR")); 

enter image description here

+0

희망 [이] (http://stackoverflow.com/a/20077381/4101990) 당신을 도울 것입니다 ... –

+0

그건 프로그래밍 방식이 아니기 때문에, 나는 OP가 자바 코드를 원한다고 의심한다. –

+0

예, 프로그래밍 방식으로이 작업을 수행해야합니다 ... – Ramesh

답변

1

당신은 배경 색상이 동적 할 필요가 있다고 말했다. 포인트의 몇 :

  1. 워드 프로세서에 따르면 (link가) : 당신은 활동 수명주기 동안 발생하는 이벤트에 따라 옵션 메뉴를 수정하려면

, 그렇게에서 할 수있는 onPrepareOptionsMenu() 메소드. 이 메소드는 Menu 객체를 현재 존재하는 그대로 전달하여 객체를 추가, 제거 또는 비활성화하는 등 수정할 수 있도록합니다. (조각은 또한 onPrepareOptionsMenu() 콜백을 제공합니다.)

  1. MenuInflater 제목과 아이콘을 제외하고 메뉴의 모양을 수정하려고 레이아웃 자원의 태그를 무시합니다.

그래서, 한 메뉴 항목의 모양이 나의 제안은 다음과 같이 미리 정의 된 스타일을 사용하는 것입니다 (개별 항목에 전체 메뉴에 적용 할 수는 없습니다) 응용 프로그램 테마에 의해 결정됩니다 같이

<style name="RedDropDownTheme" parent="AppBaseTheme"> 
    <item name="android:dropDownListViewStyle">@style/RedDropDownListView</item> 
</style> 

<style name="RedDropDownListView" parent="android:style/Widget.Holo.ListView.DropDown"> 
    <item name="android:background">@color/your_red_color</item> 
</style> 

색상을 나중에 변경해야하는 경우 공유 환경 설정에 새로운 색상 선택 사항을 저장하고 activity의 recreate() 메소드를 호출 한 다음 새 테마 (setTheme (R.style.different_color_style))를 활동의 onCreate()는 공유 환경 설정의 값을 기반으로합니다.

+0

dropDownListViewStyle 설정이 트릭을 저에게주었습니다. 감사합니다. – m02ph3u5

관련 문제