在Android开发过程中,为了更好的用户体验,我们往往需要自定义应用的主题和样式。
自Android3.0后,Google引入了ActionBar,它向用户提供了当前可用的Action和导航模式。当ActionBar的Action比较多或者人为的设置属性为Never时,Action会被添加到Overflow菜单中。这时候,为了让Overflow菜单的样式与整个主题相匹配,就需要我们自定义样式了。。。
在参考了大神的博客后,终于使用Support V7库实现了Overflow样式的自定义,这里简单记录如下,供博友们参考:
1、在自己的style.xml文件中,设置actionBarWidgetTheme属性值:
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:actionBarWidgetTheme">@style/Theme.overflowmenu.theme</item>
<item name="actionBarWidgetTheme">@style/Theme.overflowmenu.theme</item>
</style>
2、 上面actionBarWidgetTheme引用了自定义的样式:
<style name="Theme.overflowmenu.theme" parent="Theme.AppCompat">
<item name="android:popupMenuStyle">@style/PopupMenu</item>
</style>
3、同样的,在上面的style定义中,同样引用了自定义的样式:
<style name="PopupMenu" parent="android:Widget.ListPopupWindow">
<item name="android:popupBackground">@drawable/menu_dropdown_panel_stylingactionbar</item>
</style>
至此即完成了Overflow样式的自定义,现截图如下: