繁体   English   中英

在底部导航活动的右上角添加按钮

[英]Add button to top right in Bottom Navigation Activity

我使用底部导航活动模板在 Android Studio 中创建了一个应用程序。 已经有一个顶部栏,里面什么都没有。 我想在顶部栏的右侧放置一个按钮(不是菜单,按钮)。 我该怎么做呢?

在此处输入图像描述

最简单的解决方案是在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM