2012-07-23 3 views
4

셜로 액션 바를 사용하여 메뉴 항목의 텍스트 색상을 다른 색상으로 변경하는 방법을 알아 내려고했습니다. 아래 난 ...셜록 액션 바 테마를 사용하여 오버플로 메뉴 항목의 텍스트 색상을 다른 색상으로 변경하는 방법

 <style name="MYTHEME" parent="Theme.Sherlock.Light.ForceOverflow"> 

     <item name="android:actionMenuTextColor">@color/menu_color</item> 
     <item name="actionMenuTextColor">@color/menu_color</item> 


     <item name="android:actionDropDownStyle">@style/MYTHEME.ActionBarStyle.DropDownStyle</item> 
     <item name="actionDropDownStyle">@style/MYTHEME.ActionBarStyle.DropDownStyle</item> 

     </style> 

     <style name="MYTHEME.ActionBarStyle.DropDownStyle" parent="Widget.Sherlock.Spinner.DropDown.ActionBar"> 
     <item name="android:textColor">@color/menu_color</item> 
     </style> 
내가 'actionDropDownStyle'를 통해 오버 플로우 메뉴 항목의 색상을 변경하려면 위의 하나를 사용하여 메뉴 항목의 색상을 변경할 수 있지만, 수 없습니다

을 주제로 밖으로 시도한다

나는 또한 https://groups.google.com/forum/#!msg/actionbarsherlock/5lHOKNlXn_4/f9XicMXbFFAJ 링크를 보았지만 오버 플로우 메뉴 배경을 변경하는 것에 대해서는 절반의 대답 만있었습니다.

아이디어를 오버플로 메뉴 항목의 텍스트 색상을 변경하는 방법은 무엇입니까?

답변

4

당신은 ActionBarSherlock의 라이브러리가 제공하는 하나의 예를 들어 오버라이드 (override), 사용자 정의 스피너 스타일을 만들 수 있습니다 spinnerItemStyle 항목에서, 테마에 참조,

<style name="SpinnerItemStyle" parent="Widget.Sherlock.TextView.SpinnerItem"> 
    <item name="android:textColor">@android:color/white</item> 
    <item name="android:textSize">22sp</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:padding">4dp</item> 
    <item name="android:gravity">left|center_vertical</item>   
</style> 

다음 :

<item name="spinnerItemStyle">@style/SpinnerItemStyle</item> 

을 편집 :

참고 : 어댑터에 com.actionbarsherlock.R.layout.sherlock_spinner_drop 스피너 항목으로 같은 드롭 다운 항목을 down_item 및 com.actionbarsherlock.R.layout.sherlock_spinner_item :

ArrayAdapter<String> navigationAdapter = new ArrayAdapter<String>(context, com.actionbarsherlock.R.layout.sherlock_spinner_item, navigationItems); 
navigationAdapter.setDropDownViewResource(com.actionbarsherlock.R.layout.sherlock_spinner_dropdown_item); 
+0

나는 위의 코드를 시도하지만 ... 오버 플로우 메뉴 항목의 텍스트 색상을 변경할 수 없습니다 아직 어떤 아이디어를 해요? & 오버 플로우 메뉴 항목 스타일이 TextView.SpinnerItem과 관련이 없다고 생각합니다. –

+0

부모님이 셜록 테마를 가지고 있어야하는 응용 프로그램 테마에 해당 항목 (spinnerItemStyle)을 포함시켜야합니다. –

+0

내 경우에는 MYTHEME이 내 응용 프로그램에 사용하는 테마 이름이며, 내 테마에 spinnerItemStyle을 포함 시키라고 제안 했으므로 아래 링크는 내 응용 프로그램에 사용하는 사용자 지정 테마를 제공합니다. [link] (http://s9.postimage.org/ojxoymj0f/custom_theme.png)하지만 아무런 일도하지 않았습니다 .. 실수를 발견하면 저에게 알려주세요. –

0

검색을 많이 후, 하나는 ActionBarSherlock에 대한 ActionBarOverflowMenu 내부의 텍스트 색상을 수정할 수 있습니다. 상위 스타일 요소 아래의 테마 스타일은 다음과 같습니다. 아직 내부의 모든 위젯을 확인하지 않았습니다 ActionBar 변경 또는 아닙니다. 발견 된 경우 용서해주십시오.

res\values\styles.xml

<style name="Theme.Zname" parent="@style/Theme.Sherlock.Light"> 
    <item name="actionBarItemBackground">@drawable/selectable_background_zname</item> 
    <item name="actionBarWidgetTheme">@style/Overflow.Text.Color</item> 
</style> 

<style name="Overflow.Text.Color" parent="Widget"> 
     <item name="android:textColor">@android:color/white</item> 
</style> 

res\values-v14\styles.xml

<style name="Theme.Zname" parent="@style/Theme.Sherlock.Light"> 
    <item name="actionBarItemBackground">@drawable/selectable_background_zname</item> 
    <item name="android:actionBarWidgetTheme">@style/Overflow.Text.Color</item> 
</style> 

<style name="Overflow.Text.Color" parent="Widget"> 
     <item name="android:textColor">@android:color/white</item> 
</style> 
관련 문제