如何将退出图标放置在Android ActionBar右侧?
解决方法
你当前用的setHomeAsUpIndicator是用来设置ActionBar左侧的导航返回图标,所以图标肯定会出现在左边。要把退出登录图标放到右侧,得通过创建自定义菜单来实现,步骤如下:
- 创建菜单布局文件
在res/menu目录下新建一个菜单文件(比如命名为menu_logout.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_logout" android:icon="@drawable/ic_cerrar" android:title="退出登录" app:showAsAction="always" /> <!-- 设置为始终显示图标 --> </menu>
- 在Activity中加载菜单
重写onCreateOptionsMenu方法,加载刚才创建的菜单:
override fun onCreateOptionsMenu(menu: Menu?): Boolean { menuInflater.inflate(R.menu.menu_logout, menu) return true }
- 处理菜单点击事件
修改你的onOptionsItemSelected方法,替换成处理退出菜单项的逻辑:
override fun onOptionsItemSelected(item: MenuItem): Boolean { return when (item.itemId) { R.id.action_logout -> { cierre() // 执行你的退出登录逻辑 true } else -> super.onOptionsItemSelected(item) } }
- 移除原有左侧图标代码
把你之前写的这些代码删掉:
// 这些代码要删掉 supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_cerrar) supportActionBar?.setHomeButtonEnabled(true) supportActionBar?.setDisplayHomeAsUpEnabled(true)
这样设置后,退出登录图标就会显示在ActionBar的右侧了。
内容的提问来源于stack exchange,提问作者Hugo Jiménez
相关产品推荐
相关产品推荐

