Android实现微信长按菜单-FloatMenu-创新互联

在日常开发中,长按某个view出现个菜单是很常见的需求,Google 也给我们提供了一些组件来实现,比如PopupMenu。但是在实际使用中还是发现他无法满足我们的所有需求。

创新互联网站建设公司是一家服务多年做网站建设策划设计制作的公司,为广大用户提供了做网站、成都网站设计,成都网站设计,一元广告,成都做网站选创新互联,贴合企业需求,高性价比,满足客户不同层次的需求一站式服务欢迎致电。

比如:产品要求长按菜单出现在手指按下的位置,额 这就头疼了,PopupMenu只能展示在view的底部或者头部。还有个问题如果你的view过长超过一屏,那么 PopupMenu 就无法显示在屏幕里了。

所以没办法,只能硬着头皮自己撸一个menu了。 在日常使用中发现微信的 弹窗菜单 很符合要求,所以就模仿微信来撸一个了。

实现思路

•继承 PopupWindow 来实现长按弹窗

•获取当前按下 位置,传给 view 来显示

具体实现

•第一个很好实现,我用的是recyclerView 来实现布局的,而且传入的资源是 menu。而且另一个好处就是控制某些 item的可见(因为我自己项目中有这样需求,所以考虑进去了)

 private Menu mMenu;
 @NonNull
 @SuppressLint("RestrictedApi")
 public Menu getMenu() {
 if (mMenu == null) {
  mMenu = new MenuBuilder(mContext);
 }
 return mMenu;
 }
 @NonNull
 public MenuInflater getMenuInflater() {
 return new MenuInflater(mContext);
 }
 public void inflate(@MenuRes int menuRes) {
 getMenuInflater().inflate(menuRes, getMenu());
 }

文章名称:Android实现微信长按菜单-FloatMenu-创新互联
转载来源:http://bzwzjz.com/article/idpgj.html

其他资讯

Copyright © 2007-2020 广东宝晨空调科技有限公司 All Rights Reserved 粤ICP备2022107769号
友情链接: 成都企业网站建设公司 成都网站建设公司 网站建设公司 定制网站建设多少钱 网站建设开发 成都网站设计 企业网站设计 网站建设公司 重庆网站制作 达州网站设计 高端网站建设 成都网站建设 成都网站设计 成都网站建设 成都网站建设 营销型网站建设 成都网站制作 成都响应式网站建设 成都网站建设 网站制作报价 成都网站建设流程 广安网站设计