2012-10-08 4 views
1

ActionBarSherlock을 맞춤 설정하고 싶습니다. 그래서, 투명 배경을 가진 ActionButton에 selector를 사용하려고했습니다.ItemBackground in ActionBarSherlock

<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
      android:state_pressed="true" 
      android:drawable="@drawable/nav_bouton_recherche_pushed"/> 
    <item 
      android:drawable="@drawable/nav_bouton_recherche"/> 
</selector> 

이것은 메뉴 코드 : 파란색

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item 
      android:id="@+id/selection_menu_search" 
      android:icon="@drawable/search_button_selector" 
      android:title="@string/action_bar_search" 
      android:showAsAction="always" 
      /> 
</menu> 

내가 어떤 작업 버튼을 누르면, 그 배경 변경이 선택 코드입니다. 기본 배경을 투명하게 변경하려고했습니다. 이것은 내 스타일입니다.

<style name="Theme.MyStyle" parent="Theme.Sherlock.Light"> 
    <item name="actionBarStyle">@style/Widget.MyStyle.ActionBar</item> 
    <item name="android:actionBarStyle">@style/Widget.MyStyle.ActionBar</item> 
    <item name="android:actionBarItemBackground">@android:color/transparent</item> 
</style> 

다음과 같은 문제가 발생했습니다. 애플리케이션 시작 직후에 작업 버튼을 누르면 정상적으로 작동합니다. 하지만 나중에 오버플로 버튼을 누르면 작업 버튼을 눌렀을 때 드로어 블 변경이 중지됩니다.

아무도이 문제를 해결하는 방법을 알고 있습니까?

답변

0

XML 파일에는 아이콘 만 사용할 수있는 아이콘 인 아이콘이 있지만 선택자가 아닌 아이콘이 있습니다.이 메뉴는 코드에서 만들어야합니다. 원하는 메뉴를 작성할 onCreateOptionsMenu를 재정의하십시오.

@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    SubMenu subMenu = menu.addSubMenu("one"); 
    subMenu.add("one_one"); 
    MenuItem item = subMenu.getItem(); 
    item.setIcon(R.drawable.test_selector); 
    item.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
    return super.onCreateOptionsMenu(menu); 
} 

test.selector :

<?xml version="1.0" encoding="utf-8"?> 

<item 
    android:drawable="@drawable/test_shape_pressed" 
    android:state_pressed="true"/> 
<item 
    android:drawable="@drawable/test_shape" 
    android:state_pressed="false"/> 

+0

당신은 또한 코드 몇 가지 설명을 추가 할 필요가; -) ... [유래]에 오신 것을 환영합니다 (http://stackoverflow.com) –