使用getSupportActionBar()实现简易ActionBar:添加返回键与设置图标
关于在AppCompatActivity的ActionBar添加设置图标的问题
很遗憾,没办法只靠一行代码直接添加设置图标——ActionBar上的操作图标本质属于「选项菜单项」,必须遵循Android的菜单系统流程来实现,但这个流程其实非常简单,并不需要复杂的Toolbar改造,完全可以在你现有代码基础上扩展。
具体实现步骤(适配你当前的AppCompatActivity场景)
假设你已经通过getSupportActionBar().setDisplayHomeAsUpEnabled(true);配置了返回按钮,只需要再做以下几步:
创建菜单资源文件
在res/menu目录下新建一个XML文件(比如menu_settings.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:icon="@drawable/ic_settings" <!-- 替换成你的设置图标资源 --> android:title="@string/settings" <!-- 替换成你的设置文本 --> app:showAsAction="always" /> <!-- 让图标直接显示在ActionBar上,不隐藏到溢出菜单 --> </menu>在Activity中加载菜单
重写onCreateOptionsMenu方法,加载刚才创建的菜单:@Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_settings, menu); return true; }(可选)处理设置图标的点击事件
如果需要点击设置图标触发逻辑,重写onOptionsItemSelected:@Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { // 在这里添加你的设置页面跳转或其他逻辑 return true; } // 保留返回按钮的默认逻辑 return super.onOptionsItemSelected(item); }
额外说明
- 你不需要替换成Toolbar(当然Toolbar的自定义灵活性更高),用原生的ActionBar配合上述步骤就能同时显示返回按钮和设置图标。
- 整个流程的代码量很少,只是必须遵循Android的菜单系统规范,没有所谓的「一行代码捷径」。
内容的提问来源于stack exchange,提问作者Ghost.Idle
相关产品推荐
相关产品推荐

