如何将Toolbar中的按钮放置在文本「Learn」左侧?
把Toolbar按钮放到「Learn」左侧的解决方案
嘿,我来帮你搞定这个问题!要把按钮放到「Learn」的左侧,得分两种情况来处理,取决于「Learn」是Toolbar的标题还是另一个菜单项:
情况一:「Learn」是另一个Toolbar菜单项
Toolbar里的菜单项是按android:orderInCategory属性的数值从小到大排序的——数值越小,位置越靠左。
你现在的按钮代码是:
<item android:id="@+id/action_back" android:orderInCategory="1" android:icon="@drawable/ic_menu_send" app:showAsAction="always" android:title=""/>
只要确保「Learn」对应的菜单项的android:orderInCategory值比1大(比如设为2),你的按钮就会自动排在「Learn」的左侧啦。如果「Learn」的order值比1小,那把你的按钮的orderInCategory改成更小的数字(比如0)就行。
情况二:「Learn」是Toolbar的标题
默认情况下,通过menu文件添加的菜单项都会显示在标题的右侧。要把按钮放到标题左侧,最简便的方法是把它设置为Toolbar的导航图标,步骤如下:
- 先把menu文件里的
action_back项调整一下(要么移除,要么设置app:showAsAction="never"让它不显示在Toolbar上) - 在你的Activity或Fragment代码里,给Toolbar设置导航图标和点击事件:
Kotlin代码示例
// 先获取Toolbar实例(如果用setSupportActionBar,也可以用supportActionBar) val toolbar = findViewById<Toolbar>(R.id.your_toolbar_id) toolbar.setNavigationIcon(R.drawable.ic_menu_send) // 用你原来的图标 toolbar.setNavigationOnClickListener { // 这里写按钮的点击逻辑,比如返回上一页 onBackPressedDispatcher.onBackPressed() }
Java代码示例
Toolbar toolbar = findViewById(R.id.your_toolbar_id); toolbar.setNavigationIcon(R.drawable.ic_menu_send); toolbar.setNavigationOnClickListener(v -> { // 点击事件逻辑 onBackPressed(); });
这样设置后,图标就会乖乖出现在「Learn」标题的左侧了。
如果硬要通过菜单项实现标题左侧的位置,就得自定义Toolbar的布局,把标题和菜单项的容器位置调换,这种方法比较繁琐,不太推荐。
内容的提问来源于stack exchange,提问作者Tom hala




