一:先寫一個自定義的菜單佈局
這個佈局可以根據業務需要任意寫
二:在menu的item中引用該佈局
這了用到了app:actionLayout來指定自定義菜單佈局,需要注意的是必須是app:actionLayout,而不應該是android:actionLayout,否則onCreateOptionsMenu方法中的getActionView()方法會返回null。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.head_flavors, menu);
final MenuItem item = menu.findItem(R.id.flavor);
// getActionView()返回你自定義的菜單佈局,設置單擊事件的目的是,讓其單擊時執行onOptionsItemSelected,從而只需統一在onOptionsItemSelected處理即可
item.getActionView().setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
onOptionsItemSelected(item);
}
});
return super.onCreateOptionsMenu(menu);
}
四:沒有第四步了!
由第三步可知,onOptionsItemSelected(MenuItem item) 方法無需做任何改變。
五:最後看看效果
作者:yzjgogo
來源:CSDN
原文:https://blog.csdn.net/yinzhijiezhan/article/details/80997554
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!