您的位置:首页 > 移动开发

为啥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 都能看到了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐