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

关于Android ActionBar 一直显示overflow的一些问题

2014-08-03 15:02 399 查看
首先说我的APP支持Android2.2版本及以上的系统,因为这几乎包含了99%的手机。

再说要在Android2.2上面使用ActionBar,需要用到android.support.v7.app.ActionBarActivity和android.support.v7.app.ActionBar这两个东东(其实v7是2.1),我的mainactivity extends ActionBarActivity。

我通过我的模拟器Android2.2和实体机MOTOROLA XT316 Android2.3.3验证,在低版本中如Android2.2和Android2.3,无论你在create()方法是否设置下面这段代码或者设置这段代码为一个子程序在create()调用,都不会显示Android overflow(就是一般应用程序的那三个竖点)

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

那这段代码是什么意思呢?

我猜的是这样的,是高版本(Android4.0以上)中可能带有menu实体键的手机,没有这段代码的时候是不显示overflow的;没有menu实体键的手机会自动显示overflow的。

为了能在有menu实体键的高版本的手机上也能显示overflow键,所以我们需要添加这段代码到create()方法中。stack overflow上面的解释
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ActionBar overflow