android 菜单显示位置,Android应用中菜单(Menu)的位置显示问题

本文探讨了Android应用中菜单显示位置不一致的问题,源于使用了OptionsMenu和PopupMenu两种不同的菜单组件。OPTIONS Menu常在菜单键触发,而PopupMenu在More按钮下弹出。Android 3.0以上版本推荐使用Action Bar,但Browser为了兼容性自定义了nvscreen控件,结合PopupMenu和OptionsMenu,导致位置差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题的产生:

在bugzilla中发现测试人员提出的一个bug,经过仔细阅读测试人员给出的信息,发现是关于应用中MENU按键弹出菜单和点击More弹出菜单的位置显示不一致的问题,具体问题如下:

1、按下手机上的MENU

按键弹出的菜单显示如下:

0818b9ca8b590ca3270a3433284dd417.png

2、点击右上角的More按钮显示的菜单如下:

0818b9ca8b590ca3270a3433284dd417.png

初步分析:

从表面来看,同样的功能菜单,同样的选项,不同是触发方式和显示的位置。

单单从表面上来看已经无法知晓此差别的原因了,下面就去分析和研究以下android的browser源码。

分析结果:

通过分析android的browser源码

发现两种菜单虽然显示的菜单项一样,状态一样,但是却用的不是同一种菜单组件,显示在右上角的菜单是PopupMenu,显示在底部居中的菜单时OptionsMenu,通过进一步的分析查找发现,android的基本菜单有以下三种:

1、选项菜单和动作条(Options menu and actio

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值