2015-05-04 68 views

回答

0
@Override 
public boolean onCreateOptionsMenu(Menu menu) 
{ 
    MenuInflater inflater=getMenuInflater(); 
    inflater.inflate(R.menu.menu,menu); 
    setMenuBackground(); 
    return true;  
} 




    protected void setMenuBackground(){      
    // Log.d(TAG, "Enterting setMenuBackGround"); 
    getLayoutInflater().setFactory(new Factory() { 
     public View onCreateView(String name, Context context, AttributeSet attrs) { 
      if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")) { 
       try { // Ask our inflater to create the view 
        LayoutInflater f = getLayoutInflater(); 
        final View view = f.createView(name, null, attrs); 
        /* The background gets refreshed each time a new item is added the options menu. 
        * So each time Android applies the default background we need to set our own 
        * background. This is done using a thread giving the background change as runnable 
        * object */ 
        new Handler().post(new Runnable() { 
         public void run() { 
          // sets the background color 
          view.setBackgroundResource(R.color.androidcolor); 
          // sets the text color    
          ((TextView) view).setTextColor(Color.BLACK); 
          // sets the text size    
          ((TextView) view).setTextSize(18); 
      } 
        }); 
       return view; 
      } 
     catch (InflateException e) {} 
     catch (ClassNotFoundException e) {} 
    } 
    return null; 
}}); 
} 
+1

沒有任何更改背景 –

0

ActionBarStyleGenerator

您是否需要設置彈出式顏色這將根據需要更改菜單背景。下載生成的樣式並應用到您的項目中。

+0

即時通訊使用這個,但我的行動吧serach視圖不工作 –

+0

你是什麼意思不工作? – Harry

+0

serach查詢不能在操作欄上工作 –