Toolbar.inflateMenu似乎什么都不做
目前,我正在将新的AppCompat库带到老设备的材料devise周围。
设置一个工具栏作为操作栏工作正常,但工具栏似乎没有做任何事情调用inflateMenu(int resId)
。 从文档,我认为这是取代getMenuInflater().inflate(int resId)
从onCreateOptionsMenu调用。 如果我做后者,菜单项正确膨胀,并添加到工具栏,但inflateMenu似乎没有。
我错过了什么?
活动代码:
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()
因为工具栏充当您的ActionBar。 所有菜单相关的callback是通过默认的。 唯一需要调用toolbar.inflateMenu()
的时候是当你使用工具栏作为独立的小部件。 在这种情况下,您还必须通过处理菜单项点击事件
toolbar.setOnMenuItemClickListener( new Toolbar.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { // Handle menu item click event return true; } });