Java里optionsMenu.add_NoActionBar主题下如何添加OptionsMenu
菜單無法顯示
為了不顯示標題欄,所以主題使用了 NoActionBar,這也直接導致選項菜單無處顯示
解決方案
添加一個ToolBar,自定義標題欄
android:layout_width="0dp"
android:layout_height="wrap_content"
android:id="@+id/main_menu_ebook"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
以下為kotlin語法,如果你用的是java語法,結構有差,但核心代碼是一樣的 setSupportActionBar(mBinding.mainMenuEbook)
這里我使用了 ViewBinding,如果你沒有開啟,那就把 mBinding.mainMenuEbook 替換成 R.id.你的toolbar控件來使用
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setSupportActionBar(mBinding.mainMenuEbook)
}
res/menu
添加menu資源文件夾
res > 右鍵添加資源文件夾 > 類型 menu
添加menu文件
res > menu > 右鍵添加menu資源文件
xmlns:app="http://schemas.android.com/apk/res-auto">
android:id="@+id/menu_main_add"
android:title="添加"
android:icon="@android:drawable/ic_menu_add"
app:showAsAction="never"/>
android:title="關閉"
android:icon="@android:drawable/ic_menu_close_clear_cancel"
app:showAsAction="never"/>
Activity
onCreateOptionsMenu
在activity創建的時候創建menu,還有一個是onPrepareOptionsMenu每次點擊菜單鍵就創建菜單, 主要用于菜單會更新的情況
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.menu_main, menu)
return super.onCreateOptionsMenu(menu)
}
菜單項點擊事件
override fun onOptionsItemSelected(item: MenuItem?): Boolean {
when(item?.itemId){
R.id.menu_main_add ->
showSnackBar(mBinding.bookContent, "menu add")
R.id.menu_main_close -> finish()
}
return super.onOptionsItemSelected(item)
}
總結
以上是生活随笔為你收集整理的Java里optionsMenu.add_NoActionBar主题下如何添加OptionsMenu的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java与jquery的选择器区别_JQ
- 下一篇: ccf画图java详细解析_ccfjav