[英]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.