La visualizzazione del menu di azione per visualizzare la larghezza di icone di un intero schermo è un lavoro ingrato. Ecco un esempio per fare ciò che vuoi. Assicurati che il tuo oggetto XML ActionMenuView sia wrap_content per altezza e larghezza, quindi gravità a destra. Circondalo in un LinearLayout che prende tutta la larghezza e fornisce il colore di sfondo.
Usa questo codice per inizializzare l'ActionMenuView (ovviamente sarà necessario cambiare i callback pulsante)
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);
Per quello che vale, ho dovuto leggere il codice di supporto sorgente della libreria per 8 ore per arrivare a questo lavoro. La documentazione è spazzatura.
Hai capito? c'è mancanza di risorse su questo. – osayilgan
@osayilgan Ho passato ad altro metodo per questa parte alla fine. Ma puoi dare un'occhiata alla risposta di George. Per favore fatemi sapere se funziona, se così lo segnerei come risposta. Grazie :) – jiu9x9uij
Ho trovato un'altra soluzione utilizzando le risorse del tema Libreria AppCompat. Con determinati attributi, puoi personalizzare ActionView con colori di sfondo, ecc. – osayilgan