为啥app没有menu键?
2014-08-25 16:27
197 查看
作为半路出家做android app的人,对android很多东西不是很熟悉,造成很多苦恼,
测试机是4.2.2的系统,
之前的app没有menu键,也没有实体键,发现是因为
<activity
android:name="com.nufront.mediacenter.LauncherActivity"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/app_name" >
没有title bar 导致的。
=====
参考http://www.2cto.com/kf/201206/136813.html
添加ActionBar
不需要导入ActionBar,因为在android3.0或者以上版本中,ActionBar已经默认的包含在Activity中
在Android3.0的默认主题“holographic”中,已经创造了ActionBar
当android:minSdkVersion 或者 android:targetSdkVersion属性被设置成11或者更高时,应用会被认为是Android3.0版本(默认含有ActionBar)
去除ActionBar
我们可以通过把主题设置为Theme.Holo.NoActionBar为一个Activity去除掉ActionBar。
<activity android:theme="@android:style/Theme.Holo.NoActionBar">
======================
现在又发现一个app没有menu键,但是是有title的,
找了好久解决不了问题,很奇怪为啥几乎一样xml配置的其他app 在action bar上就有menu呢?
看到http://blog.csdn.net/penglijiang/article/details/7844514 说,
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15"
把android:targetSdkVersion改为10,可以暂时解决这个问题,就是在虚拟按键旁边有这个menu键了。。。
但是,
看到 http://www.whatsapp.com/faq/zh_cn/android/21228643 说,4.0和4.2的位置不一样的,
看这个 http://www.2cto.com/kf/201206/136813.html 说,应该上头的那个地方就叫做 action bar,
其他app也是跟我一样的target version,人家就好好的。
怎么才能在上面的操作栏 显示那三个点的menu键呢?
===========后来发现api > 10 就不好用了 参考 http://blog.csdn.net/jiaoyang623/article/details/10526073
在Activity的onCreate中设置flag
[java] view
plaincopy
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY, WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY);
或者
[java] view
plaincopy
getWindow().setFlags(0x08000000, 0x08000000);
这么改的话,可以控制某个Activity有菜单,某个没有。
我用的第二个方法,menu键ok!
=====
参考http://blog.csdn.net/klpchan/article/details/9749569
1】应用图标、2】AcationBar菜单项 3】AB溢出菜单项,下面还可以看到Tab标签,这些都可以在ActionBar在显示出来。ActionBar是在API11以后才引入的,如果想在早期版本中使用该组件,可以导入android.suppor.v7.app.actionbar。参考http://developer.android.com/tools/support-library/setup.html设置库。对于targetSdkVersion在11或者以上的应用来说,默认主题"Theme.Holo"使用了ActionBar,如果不想使用该组件,可以设置主题为"Theme.Holo.NoActionBar"。
可知,api11之上,默认主题都是有menu键的
于是, 指定主题:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.Holo"
>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
logo title 和 menu 都能看到了。
测试机是4.2.2的系统,
之前的app没有menu键,也没有实体键,发现是因为
<activity
android:name="com.nufront.mediacenter.LauncherActivity"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.NoTitleBar"
android:label="@string/app_name" >
没有title bar 导致的。
=====
参考http://www.2cto.com/kf/201206/136813.html
添加ActionBar
不需要导入ActionBar,因为在android3.0或者以上版本中,ActionBar已经默认的包含在Activity中
在Android3.0的默认主题“holographic”中,已经创造了ActionBar
当android:minSdkVersion 或者 android:targetSdkVersion属性被设置成11或者更高时,应用会被认为是Android3.0版本(默认含有ActionBar)
去除ActionBar
我们可以通过把主题设置为Theme.Holo.NoActionBar为一个Activity去除掉ActionBar。
<activity android:theme="@android:style/Theme.Holo.NoActionBar">
======================
现在又发现一个app没有menu键,但是是有title的,
找了好久解决不了问题,很奇怪为啥几乎一样xml配置的其他app 在action bar上就有menu呢?
看到http://blog.csdn.net/penglijiang/article/details/7844514 说,
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15"
把android:targetSdkVersion改为10,可以暂时解决这个问题,就是在虚拟按键旁边有这个menu键了。。。
但是,
看到 http://www.whatsapp.com/faq/zh_cn/android/21228643 说,4.0和4.2的位置不一样的,
看这个 http://www.2cto.com/kf/201206/136813.html 说,应该上头的那个地方就叫做 action bar,
其他app也是跟我一样的target version,人家就好好的。
怎么才能在上面的操作栏 显示那三个点的menu键呢?
===========后来发现api > 10 就不好用了 参考 http://blog.csdn.net/jiaoyang623/article/details/10526073
在Activity的onCreate中设置flag
[java] view
plaincopy
getWindow().setFlags(WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY, WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY);
或者
[java] view
plaincopy
getWindow().setFlags(0x08000000, 0x08000000);
这么改的话,可以控制某个Activity有菜单,某个没有。
我用的第二个方法,menu键ok!
=====
参考http://blog.csdn.net/klpchan/article/details/9749569
1】应用图标、2】AcationBar菜单项 3】AB溢出菜单项,下面还可以看到Tab标签,这些都可以在ActionBar在显示出来。ActionBar是在API11以后才引入的,如果想在早期版本中使用该组件,可以导入android.suppor.v7.app.actionbar。参考http://developer.android.com/tools/support-library/setup.html设置库。对于targetSdkVersion在11或者以上的应用来说,默认主题"Theme.Holo"使用了ActionBar,如果不想使用该组件,可以设置主题为"Theme.Holo.NoActionBar"。
可知,api11之上,默认主题都是有menu键的
于是, 指定主题:
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:screenOrientation="landscape"
android:theme="@android:style/Theme.Holo"
>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
logo title 和 menu 都能看到了。
相关文章推荐
- web前端工程师在移动互联网时代里的地位问题 为啥C/S系统在PC端没有流行起来,却在移动互联网下流行了起来 为啥移动端的浏览器在很多应用里都是靠边站,人们更加倾向于先麻烦自己一下,下载安装个客户端APP
- 应用更新跳转 AppStore,千万别一不小心跳到 itune,因为 itune 里的 app 没有更新按钮
- MacOS 10.12安全与隐私没有允许任何来源的app选项解决办法
- Android开发出来的app安装后没有出现在程序列表(图标消失)
- 创建没有nib文件的App
- android:如果手机安装了app则打开一个activity,如果没有安装则去到android market如何在HTML页面实现
- 遇到的App上传到App Store时报错的疑难杂症(一)——ipa包中的Info.plist文件中没有CFBundleVersion的key
- 在ios 设备没有网络的情况下在app中如何弹出设置无线网络的提示框
- Web App Libraries下没有jar包的问题
- MacOS 10.12安全与隐私没有允许任何来源的app选项解决办法
- IOS游戏上架 玩家iap充值 base64码发到苹果验证收据 返回值里面没有 in_app 段的奇怪问题.
- App在iOS9上不能分享至微信,提示微信没有安装
- Goasm为啥没有类型和参数检查
- 为啥对视频网站没有太多兴趣呢?
- 关于app签名——无法对 jar 进行签名: 时间戳颁发机构没有响应
- Android开发过程遇到的安装好的APP打开程序崩溃,或者安装后应用列表里没有的问题及解决方案
- 在腾讯开放平台上,同一个QQ号码在不通的APP里返回的OpenID不一样且完全没有关联,这样的设计是处于什么考虑?
- jBPM 4.3 12月份更新了. 为啥jboss 上面没有更新连接.?
- app无法访问相册,设置-隐私-相册里也没有该app
- Microsoft Jet 数据库引擎打不开文件'……/App_Data/data.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。