本文转自:http://blog.csdn.net/u010933209/article/details/40112079

问题一:icon不能正常显示

一直都对actionbar又爱又恨,特别是刚接触的时候有个十分头疼的问题,就是明明ShowAsAction没有设为never,怎么就是没显示?

后来对比了eclipse生成的menu和自己写的menu文件,发现eclipse生成的menu会多个命名空间 xmlns:app="http://schemas.android.com/apk/res-auto",而且eclipse自动生成的icon前缀则是app:icon,然后把自己定义item的icon前缀也改为app,果然可以正常显示了。

以下这段是Google Android 官方培训教程看到的:

如果你为了兼容 Android 2.1 的版本使用了 Support 库,在 android 命名空间下 showAsAction 属性是不可用的。Support 库会提供替代它的属性,你必须声明自己的 XML 命名空间,并且使用该命名空间作为属性前缀。(一个自定义 XML 命名空间需要以你的 app 名称为基础,但是可以取任何你想要的名称,它的作用域仅仅在你声明的文件之内。)例如:

res/menu/main_activity_actions.xml

也就是说,如果你用了android.support.v7包,则icon属性前缀必须是自定义的命名空间前缀,icon才会正常显示。

问题二:overflow无法显示

对初学者来说又是一个比较抓狂的问题。抓破头都很难想出一个所以然来。

后来网上找资料才发现原来是跟手机硬件有关。如果你手机已经有物理menu键,overflow就不会显示。如果要显示就只能通过代码控制了。

private void setOverflowShowingAlways() {
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
} catch (Exception e) {
e.printStackTrace();
}

然后在onCreate方法中调用该方法

没错,就是通过反射来改变overflow 的默认设置,让其无论有没有物理menu键都可以显示。

不得不吐槽这蛋疼的设计。

初次接触Android ActionBar比较烦人的问题[转]的更多相关文章

  1. 初次接触 Android Studio FAQ

    1. 2. 3. 4. 6. 7. Tools -> Adnroid -> enable ADB integration   8.官方模拟器太慢,还是自己下个第三方模拟器吧. http:/ ...

  2. 《驱蚊神器v1.0》android应用 赶走那些烦人的臭蚊子

    <驱蚊神器v1.0>能够非常好地赶走那些个烦人又恼人伤人的臭蚊子,它总是搞得自己没有好的睡眠或歇息,得努力地拍巴巴掌,这下可好了,也少些烦恼了,先深情地眯缝一会儿...此声波怡人不会对人产 ...

  3. 初次接触:DirectDraw

    第六章 初次接触:DirectDraw 本章,你将初次接触DirectX中最重要的组件:DirectDraw.DirectDraw可能是DirectX中最强大的技术,因为其贯穿着2D图形绘制同时其帧缓 ...

  4. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  5. Android ActionBar通过Tab进行不同的Fragment之间的交换

    ActionBar的使用常见于4.0系统,其Tab的使用挺广泛的. 在ActionBar中添加标签(Tabs),每个标签对应的是一个Fragment,点击不同的Tab时,就会切换到对应的Fragmen ...

  6. Android ActionBar(转)

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用“返回/向上”程 ...

  7. Android ActionBar应用实战,高仿微信主界面的设计

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...

  8. Android ActionBar完全解析,使用官方推荐的最佳导航栏(上)

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/18234477 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...

  9. -1.记libgdx初次接触

    学习一门技术最难的是开发环境变量配置和工具配置,以下为我初次接触libgdx时遇到的问题 几个难点记录下 gradle 直接用下到本地,然后放到d盘,链接到就行(gradle-wrapper.prop ...

随机推荐

  1. 关于博客名“大话济公”的说明

    其实本来没打算起这个名字的,换了几个名字都被占用了(无语啊...).最近呢,我在研究<济公传>,对于济公的传说比较喜欢,尤其是这个任务,诙谐幽默,同时有时时刻刻在帮助有困难的群众,虽然是个 ...

  2. 在图层上使用CATransform3D制做三维动画-b

    在UIView上,我们可以使用CGAffineTransform来对视图进行:平移(translation),旋转(Rotation),缩 放(scale),倾斜(Invert)操作,但这些操作是没有 ...

  3. JAVA入门第一季(mooc-笔记)

    笔记相关信息 /** * @subject <学习与创业>作业1 * @author 信管1142班 201411671210 赖俊杰 * @className <JAVA入门第一季 ...

  4. Eclipse 启动问题:'Initilizing Java Tooling' has encountered a problem(。。。)

    一.问题描述: . 二.分析及解决 ...

  5. int([x[, base]]) : 将一个字符转换为int类型,base表示进制

    int([x[, base]]) : 将一个字符转换为int类型,base表示进制 >>> int(-12) -12 >>> int(-12.00) -12 > ...

  6. 百度:在O(1)空间复杂度范围内对一个数组中前后连段有序数组进行归并排序

    一.题目理解 题目:数组al[0,mid-1]和al[mid,num-1]是各自有序的,对数组al[0,num-1]的两个子有序段进行merge,得到al[0,num-1]整体有序.要求空间复杂度为O ...

  7. 安装完QQ必须要删除掉的几个恐怖文件

    安装完QQ必须要删除掉的几个恐怖文件 感谢 QQ很可怕 的投递 很多关注自己电脑硬件温度的朋友,一般都懂得去查看什么进程占用CPU较高,可能发现过有这么几个进程的CPU占用会有时莫名其妙的非常之高,它 ...

  8. StreamCQL

    StreamCQLhttps://github.com/HuaweiBigData/StreamCQL http://blog.csdn.net/viewcode/article/details/90 ...

  9. POJ 2186 Popular Cows(Tarjan)

    http://poj.org/problem?id=2186 题意 :给你n头牛,m对关系,每对关系由两个编号组成,u和v代表着u认为v是受欢迎的,如果1认为2是受欢迎的,2认为3是受欢迎的,那1认为 ...

  10. Django里,如何更改ADMIN管理后台的显示

    今天在慢慢完善管理后台的一些体验, 第一是要扩展默认显示类,就是现在弄的. 第二是要让一些显示框更自然友好,这是下一次要作的. 在各个app的admin.py里,加入相关的MIXIN类 class S ...