在Android软按键中添加Menu键

本文介绍了一种在Android设备上实现底部软Menu键的方法。通过使用反射机制来设置Window的隐藏属性,使得系统UI能够显示Menu键。此方法适用于那些没有硬件Menu键的设备,并且在某些版本的Android上可能不可用。

       在Android中,有时候没有硬件Menu。于是需要软件Menu。但是默认Google想让你用ActionBar上的Menu。

但是,有时候我们确实需要在在底部的软按键上加Menu。这里提供一种方法,经过测试,可行。

这里,设置Window的属性,要求添加Menu键。

    为什么用反射,是因为这个是隐藏的属性。并且,在低版本上,这个属性是不存在的。

    另外,软按键的显示,是在SystemUI里面控制的,这里没有详细分析,有时间可以分析一下。

       try {

            getWindow().addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));

        }

        catch (NoSuchFieldException e) {

            // Ignore since this field won't exist in most versions of Android

            LogMi.w(TAG, "cant find field FLAG_NEEDS_MENU_KEY at WindowManager.LayoutParams");

        }

        catch (IllegalAccessException e) {

            Log.w(TAG, "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e);

        }

   



转载于:https://www.cnblogs.com/platte/p/3596391.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值