1.在Toolbar所在的Activity中使用setSupportActionBar(mToolbar)方法設置ActionBar為當前的Toolbar
/**
* 使用該方法的注意事項(多次遇到的坑):
* 1.設置toolbar的顯示UI一定要在setSupportActionBar之前設置,否則不會顯示。
* 例如:mToolbar.setTitle("這是toolbar主標題");
* 2.toolbar的監聽一定要寫在setSupportActionBar的下面,否則不會觸發事件。
* 3.mToolbar.inflateMenu(R.menu.toolbar)使用該方法不會顯示菜單選項,需要在activity中重寫
* onCreateOptionsMenu方法,在該方法中使用getMenuInflater().inflate(R.menu.toolbar, menu)
* 加載menu,才會顯示。
*/
setSupportActionBar(mToolbar);
2.在本類中重寫onCreateOptionsMenu(Menu menu)方法加載menu代碼如下:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.toolbar, menu);
return super.onCreateOptionsMenu(menu);
}
3.在本類中重寫onPrepareOptionsPanel(View view, Menu menu)在該方法中使用反射顯示圖片,代碼如下:
@Override
protected boolean onPrepareOptionsPanel(View view, Menu menu) {
if (menu != null) {
if (menu.getClass() == MenuBuilder.class) {
try {
Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
m.setAccessible(true);
m.invoke(menu, true);
} catch (Exception e) {
}
}
}
return super.onPrepareOptionsPanel(view, menu);
}