這裏是做你想做的一個例子。請確保您ActionMenuVie w XML項目是用於高度和寬度的wrap_content,然後是重心向右。將其包圍在一個LinearLayout中,該LinearLayout採用整個寬度並提供背景顏色。
使用此代碼初始化ActionMenuView(顯然,你需要更改按鈕回調)
ActionMenuView actionMenuView = (ActionMenuView) findViewById(R.id.editBar);
final Context context = this;
MenuBuilder menuBuilder = new MenuBuilder(context);
menuBuilder.setCallback(new MenuBuilder.Callback() {
@Override
public boolean onMenuItemSelected(MenuBuilder menuBuilder, MenuItem menuItem) {
return onOptionsItemSelected(menuItem);
}
@Override
public void onMenuModeChange(MenuBuilder menuBuilder) {
}
});
// setup a actionMenuPresenter which will use up as much space as it can, even with width=wrap_content
ActionMenuPresenter presenter = new ActionMenuPresenter(context);
presenter.setReserveOverflow(true);
presenter.setWidthLimit(getResources().getDisplayMetrics().widthPixels, true);
presenter.setItemLimit(Integer.MAX_VALUE);
// open a menu xml into the menubuilder
getMenuInflater().inflate(R.menu.editbar, menuBuilder);
// runs presenter.initformenu(mMenu) too, setting up presenter's mmenu ref... this must be before setmenuview
menuBuilder.addMenuPresenter(presenter, this);
// runs menuview.initialize too, so menuview.mmenu = mpresenter.mmenu
actionMenuView.setPresenter(presenter);
presenter.updateMenuView(true);
對於它的價值,我不得不讀的支持庫源代碼,8小時,以得到這個工作。文檔是垃圾。
這聽起來很完美。但是,雖然使用工具欄可以在溢出菜單按鈕旁看到一些按鈕,但如果將「工具欄」更改爲「ActionMenuView」,則看不到任何內容。沒有任何錯誤或任何內容,只需在顯示菜單的地方留出空白。 – janoliver 2014-10-26 16:30:01
確保您的ActionMenuView至少有56x56dp的空間。似乎是當前版本的一個錯誤,如果給定的空間小於它將不顯示任何東西 – ianhanniballake 2014-10-26 16:33:09
正確的,現在我看到了一些東西 - 它只在寬度不是match_parent時才起作用,但是例如wrap_content '。如果是後者,則只會看到兩個按鈕和溢出按鈕的三個點,就像出現在「工具欄」中一樣。有什麼我可以破解,使其變得更寬,並顯示更多的按鈕? (它在橫向模式下顯示一個按鈕:)) – janoliver 2014-10-26 16:38:39