微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

更改工具栏的字体和布局以使文本位于图标下方

如何解决更改工具栏的字体和布局以使文本位于图标下方

我有一个包含一些工具栏图标的片段,我的活动也是如此。它们应该都在那儿,所以打开片段时我不想清除菜单

这是我的活动:

override fun onCreateOptionsMenu(menu: Menu?): Boolean {
        super.onCreateOptionsMenu(menu)
        menuInflater.inflate(R.menu.my_menu,menu)
        return true
    }

override fun onoptionsItemSelected(item: MenuItem): Boolean {
        when (item.itemId) {
            android.R.id.home -> navController.navigateUp()
            R.id.action_one -> onActionOne()
            R.id.action_two -> onActionTwo()
        }

        return super.onoptionsItemSelected(item)
    }

这是我的片段

override fun onCreateOptionsMenu(menu: Menu,inflater: MenuInflater) {
          menuItems.forEach { menuItemData ->
            menu.add(
                0,menuItemData.id,Menu.NONE,requireContext().applyTypeFace(
                    this.getString(menuItemData.title),R.string.some_font
                )
            ).apply {
                setActionView(menuItemData.layoutRes)
                icon = getDrawable(context,menuItemData.iconRes)
                setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
            }
        }
        return super.onCreateOptionsMenu(menu,inflater)
    }

override fun onoptionsItemSelected(item: MenuItem): Boolean {
        return when (item.itemId) {
            android.R.id.home -> {
                findNavController().navigateUp()
                true
            }
            else -> super.onoptionsItemSelected(item)
        }
    }

menuItems是此类的列表

enum class ToolbarMenuItem(
    @IdRes val id: Int,@StringRes val title: Int,@DrawableRes val iconRes: Int,@LayoutRes val layoutRes: Int
) 

我基本上是通过这种方式而不是XML来执行此操作,以获取文本上正确的字体和颜色。

如果没有以下代码行,这一切都可以很好地工作:

setActionView(menuItemData.layoutRes)

我希望我的自定义设计位于图标所在的位置,然后是图标下方的相应文本。

当我使用setActionView时,它根本不响应任何单击事件。 希望有人知道我错了!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。