我目前正在使用新的 AppCompat 库,为旧设备带来 Material 设计。
将工具栏设置为操作栏对我来说很好,但工具栏在调用 inflateMenu(int resId)
时似乎没有任何作用。从文档中,我认为这是替换从 onCreateOptionsMenu 调用的 getMenuInflater().inflate(int resId)
。
如果我做后者,菜单项会正确膨胀并添加到工具栏,但 inflateMenu 似乎什么都没有。
我错过了什么?
Activity 代码:
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.inflateMenu(R.menu.main); // this does nothing at all
setSupportActionBar(toolbar);
}
// this works
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
提前致谢!
最佳答案
如果您正在调用 setSupportActionBar()
,则不需要使用 toolbar.inflateMenu()
,因为 Toolbar 正在充当您的 ActionBar。所有菜单相关的回调都是通过默认的回调。唯一需要调用 toolbar.inflateMenu()
的情况是当您将工具栏用作独立小部件时。在这种情况下,您还必须通过
toolbar.setOnMenuItemClickListener(
new Toolbar.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
// Handle menu item click event
return true;
}
});
关于android - Toolbar.inflateMenu 似乎什么也没做,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26511981/