官方ActionBar的缺陷及解决办法
官方ActionBar的缺陷及解决办法
缺陷
一、不能自定义部分样式属性。
标题样式只能通过代码实现。(2.x)
二级菜单不能自定义样式,只能使用系统样式。(2.x,4.x)
二、存在二次加载问题。
ActionBar在Android4.x上会先加载一遍默认样式,然后再加载一遍自定义样式。
(标题通过代码实现时,使用导航时)
三、在不同设备上显示不一致。
在有Menu按键的手机上不显示Overflow菜单按钮。(2.x,4.x)
二级菜单在Android 2.x与Android 4.x上的显示不一致。
四、无法使用分级导航(2.x,4.x),抽屉导航存在严重缺陷(2.x)。
解决办法
纯手工修复:
Overflow问题,强制显示按键(android:icon设为Overflow,showAsAction="always")并弹出自定义popmenu,使用后多余的按钮无法自动显示在Overflow上。
二级菜单显示不一致及自定义样式问题,弹出自定义popmenu。
无法解决问题二、四。
二次加载问题,先建立一个普通Activity,设置样式为Translucent和NoTitleBar(可以通过style或代码实现),再Intent到目标Activity,目标Activity没有android:label属性但是有ActionBar(AndroidManifest.xml)。
无法解决问题四。
使用第三方库:
ActionBarSherlock4.10可解决Overflow问题,高版本无效。
SlidingMenu+ViewPagerIndicator可解决问题四。
可能还存在其他问题。
未解决问题
目前没有,以后遇到再说。
推荐阅读
-
php以CGI 模式安装时可能遇到的攻击及解决办法
-
为JS扩展Array.prototype.indexOf引发的问题及解决办法_基础知识
-
微信支付之扫码支付开发:我遇到的坑及解决办法(附:Ecshop 微信支付插件),ecshop
-
Android中EditText+Button组合导致输入板无法收起的原因分析及解决办法
-
iOS tableView上拉刷新显示下载进度的问题及解决办法
-
java在linux系统下开机启动无法使用sudo命令的原因及解决办法
-
IOS设备上给body绑定click事件不生效的原因及解决办法
-
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
-
Android菜单的定义及ActionBar的实现
-
java在linux系统下开机启动无法使用sudo命令的原因及解决办法