为啥app没有menu键?

作为半路出家做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 说,

  1. <uses-sdk  
  2.     android:minSdkVersion="8"  
  3.     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 plain copy
  1. getWindow().setFlags(WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY, WindowManager.LayoutParams.FLAG_NEEDS_MENU_KEY);   
或者
[java]  view plain copy
  1. getWindow().setFlags(0x080000000x08000000);  
这么改的话,可以控制某个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 都能看到了。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等风来不如迎风去

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值