[英]Add button to top right in Bottom Navigation Activity
最簡單的解決方案是在 go 前面創建一個菜單,但使其唯一的菜單項始終出現而不是在溢出菜單中。
首先創建一個菜單 xml 文件,將您的按鈕作為菜單項,並將其標記為始終顯示,這樣它就不會放在溢出菜單中。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_settings"
android:title="@string/settings"
android:icon="@drawable/ic_settings_24dp"
app:showAsAction="always" />
</menu>
如果您切換到將 App Bar 直接放在布局中(請參見此處和此處),並且您的按鈕對您的整個活動是全局的(不僅僅是特定片段),您可以在布局 xml 中使用app:menu
。 否則,您需要通過覆蓋 Activity 或 Fragment 中的onCreateOptionsMenu()
來設置菜單:
override fun onCreateOptionsMenu(menu: Menu): Boolean {
menuInflater.inflate(R.menu.top_bar_menu, menu)
return true
}
要響應菜單中的按鈕按下,您需要覆蓋onOptionsItemSelected()
:
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_settings -> {
// do something
true
}
else -> super.onOptionsItemSelected(item)
}
}
如果您想從 Fragment 執行此操作,請在 Fragment 的 onViewCreated() 中調用setHasOptionsMenu(true)
onViewCreated()
然后您可以在 Fragment 中覆蓋上述兩個相同的函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.