jiu*_*uij 11 android actionmenuview
由于Android 5.0不再支持SplitActionBar,因此我尝试使用ActionMenuView来实现SplitActionBar效果.但我找不到有关如何使用ActionMenuView的更多信息.
我知道我可以在布局文件中添加ActionMenuView,但我不知道如何添加菜单项.我似乎不能像使用SplitActionBar那样给他们充气.
你能给出一些关于如何使用ActonMenuView的示例代码吗?谢谢!
小智 14
获取动作菜单以显示整个屏幕的图标宽度是一件苦差事.这是一个做你想做的事的例子.确保您的ActionMenuView XML项目的高度和宽度为wrap_content,然后是右侧的重力.将它包围在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);
Run Code Online (Sandbox Code Playgroud)
为了它的价值,我必须阅读支持库源代码8小时才能使其工作.文档是垃圾.
似乎API在此期间发生了变化.目前,以下代码有效:
ActionMenuView actions = new ActionMenuView(activity);
MenuBuilder menuBuilder = (MenuBuilder) actions.getMenu();
menuBuilder.setCallback(new MenuBuilder.Callback() {
@Override
public boolean onMenuItemSelected(MenuBuilder menuBuilder, MenuItem menuItem) {
return onOptionsItemSelected(menuItem);
}
@Override
public void onMenuModeChange(MenuBuilder menuBuilder) {
}
});
inflater.inflate(R.menu.my_menu, menuBuilder);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8847 次 |
| 最近记录: |