解決Toolbar中的Menu不顯示圖片的問題



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);
}
 
 
 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM