【Android】Toolbar中app:showAsAction=”always”无效的解决方法

in 默认分类 with 0 comment

起源

在给Toolbar加载菜单的时候,发现菜单中Item设置的app:showAsAction="always"不生效,Item始终都是隐藏起来的,也就是说要点击三个点的按钮才能显示出来

过程

网上有人说需要把命名空间从android修改成app,即可生效,但是我这里本来就是app的命名空间呀,要不反过来试试(笑)?把app修改为android后直接报 Should use app:showAsAction with the appcompat library with xmlns:app="http://schemas.android.com/apk/res-auto" 既然这里修改没生效,可以尝试在代码中修改掉这个标志位,尝试一下,成功了。虽然这个方法解决的不是很优雅,但是也在这里记下来把

解决方法

videoPlayerToolbar.apply {
    inflateMenu(R.menu.video_player)
    menu.findItem(R.id.menuVideoPlayerLock).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
    menu.findItem(R.id.menuVideoPlayerRotate).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
    menu.findItem(R.id.menuVideoPlayerScale).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
}