作为半路出家做android app的人,对android很多东西不是很熟悉,造成很多苦恼,
测试机是4.2.2的系统,
之前的app没有menu键,也没有实体键,发现是因为
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
- getWindow().setFlags(WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY, WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY);
- getWindow().setFlags(0x08000000, 0x08000000);
我用的第二个方法,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 都能看到了。