android - 将顶部操作添加到底部导航活动应用程序?
问题描述
我想在某些选项卡中将操作添加到我的应用程序的顶部栏。
我从底部导航活动模板开始。这是正在运行的模板应用程序的屏幕截图,我希望在其中圈出按钮。
在我的应用程序中,最后一个选项卡是帐户。我想在应用程序标题栏的右侧添加一个按钮,但仅在帐户启动时。(其他片段可能有不同的按钮,但大多数都没有。)
在我的帐户片段中onCreateView
,我尝试访问activity?.actionBar
但它为空。我还尝试向 XML 添加工具栏,但这只是添加了第二个栏。而且,当然,我查看了Add 和 handle actions,但是我的应用程序中存在两个栏让我很难弄清楚它对我的要求是什么。
如何在此处添加项目?我更喜欢用 XML 来做,但如果必须的话,我会以编程的方式来做。
解决方案
正如@ianhanniballake 指出的那样,有一些特定于片段和应用栏的文档:Working with the AppBar
我不想把链接放在这里,所以这就是我的阅读方式(如果我有任何错误,请发表评论,我会纠正它):
- 在 res/menu 中创建一个新的菜单资源。是的,如果您已经有一个用于底部菜单,则另一个。(这是我在任何地方都找不到的记录:您不添加到现有菜单中,而是创建一个新菜单。)我打电话给我
account_menu
的。 - 调用
setHasOptionsMenu(true)
你的 FragmentonCreate()
onCreateOptionsMenu
在你的片段中实现。- 处理对片段中菜单项的点击。
您添加到片段的代码将如下所示:
override fun onCreate(savedInstanceState: Bundle?) {
setHasOptionsMenu(true)
super.onCreate(savedInstanceState)
}
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.account_menu, menu);
super.onCreateOptionsMenu(menu, inflater)
}
override fun onOptionsItemSelected(item: MenuItem): Boolean {
return when (item.itemId) {
R.id.action_settings -> {
// navigate to settings screen
true
}
else -> super.onOptionsItemSelected(item)
}
}
推荐阅读
- php - 如何根据父下拉选择动态选择子下拉列表
- elasticsearch - ELK 部署;CPU、内存、磁盘
- javascript - 复选框未设置在 jquery 中选中 onclick
- java - CSS - 圆形边框看起来像两个重叠的按钮
- rx-java - 如何为 RxAndroidBle 实现同步任务队列
- java - 带有两个表和集合的 HIbernate 标准
- dart - TextFormField 工作不正常,不断闪烁
- android - 配置项目“:openCVLibrary343”时出现问题
- matlab - matlab中的矩阵对角化精度是多少?
- android - Google 地图未显示在 Firebase 测试实验室中