今天在做一个menu的时候,需要改动item的高度和字体大小颜色。搜索了一下很多方法都不管用,最后是结合了 stack overflow 里面几个回答的方法勉强实现效果。最近比较忙,先记录下可以实现的方法,以后再找专门时间好好填坑。

首先对 Android 内部这个弹出menu似乎命名为 OverflowMenu,默认3个点的 more 按钮应该是命名为OverflowButton,但是部分属性却以PopupMenuXXX、PopupXXX、XXXPopup之类格式命名。主要改变item各种属性的方法是:自定义一个 style,然后在 Toolbar 的 Theme 里使用该 style(暂时叫主 style?),比较麻烦的是,这个主 style 的 item 主要引用其他的 style(暂时叫子 style 吧) ,而部分属性看似好像某个子 style 的子属性其实却有另外专门的 item,另外 子 style 的 parent 继承对结果也有影响(无效或者出现某些意想不到的效果)。

下面给出一段可以改动以下属性的代码,相关解释直接在注释里给出好了:

更换弹出menu图标

弹出时不遮拦Toolbar

Menu item 的高度

Menu item 的背景

Menu item 的字体大小颜色

Menu item 的分隔线

相关链接:

https://gist.github.com/mistrydarshan99/c52ba8345901bcc58442

http://stackoverflow.com/questions/31044370/reduce-menu-items-width-height-and-textview-size

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐