zoukankan      html  css  js  c++  java
  • ActionBar

    1、ActionBar获取后退箭头的方法

    getActionBar().setDisplayHomeAsUpEnabled(true);

    getActionBar().setDisplayShowHomeEnabled(true);

    @Override
    public boolean onMenuOpened(int featureId, Menu menu) {
        if (featureId == Window.FEATURE_ACTION_BAR && menu != null) {
            if (menu.getClass().getSimpleName().equals("MenuBuilder")) {
                try {
                    Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                    m.setAccessible(true);
                    m.invoke(menu, true);
                } catch (Exception e) {
                }
            }
        }
        return super.onMenuOpened(featureId, menu);
    }
    可以看到,这里我们重写了一个onMenuOpened()方法,当overflow被展开的时候就会回调这个方法,接着在这个方法的内部通过返回反射的方法将MenuBuilder的setOptionalIconsVisible变量设置为true就可以了。
    现在重新运行一下代码,结果如下图所示:
     
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        ......
        setOverflowShowingAlways();
    }
    
    private void setOverflowShowingAlways() {
        try {
            ViewConfiguration config = ViewConfiguration.get(this);
            Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
            menuKeyField.setAccessible(true);
            menuKeyField.setBoolean(config, false);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    这里我们在onCreate()方法的最后调用了setOverflowShowingAlways()方法,而这个方法的内部就是使用反射的方式将sHasPermanentMenuKey的值设置成false,现在重新运行一下代码,结果如下图所示:

  • 相关阅读:
    Windows下使用WSRM限制MongoDB内存
    java基础知识总结
    zabbix3.4自定义监控
    Java中的static关键字
    N!阶乘
    Jxnu Group Programming Ladder Tournament 2017
    大数加减法
    Codeforces 755D(思维+线段树)
    最小生成树(模板)
    引力波(matplotlib绘制)
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4926201.html
Copyright © 2011-2022 走看看