2014-11-13 69 views
1

我正在嘗試將ABS操作欄更改爲AppCompat。我需要強制下面的代碼,在SherlockFragment下工作正常,在android.support.v4.app.Fragment中工作。我需要將自定義視圖添加到Menu。我如何在android.support.v4.app.Fragment中做到這一點?ABS到AppCompat

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    super.onCreateOptionsMenu(menu, inflater); 
    menu.clear(); 
    View view = getLayoutInflater(getArguments()).inflate(R.layout.some_custom_layout, null); 
    menu.add("ITEM").setActionView(view).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 
} 

回答

1

而不是

void onCreateOptionsMenu(Menu menu, MenuInflater inflater) 

,並使用

void onPrepareOptionsMenu(Menu menu) 

然後更改

menu.add("ITEM").setActionView(view).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS); 

MenuItem menuItem = menu.add("SWITCHER"); 
MenuItemCompat.setActionView(menuItem, view); 
MenuItemCompat.setShowAsAction(menuItem, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);