PopupMenu的简要使用
发布日期:2021-05-27 02:41:33 浏览次数:31 分类:精选文章

本文共 1070 字,大约阅读时间需要 3 分钟。

#PopupMenu的创建,使用及常见用法

一:功能概述

PopupMenu是一个在指定View下方显示可变位置弹出菜单的便捷组件。例如,在浏览器长按屏幕时即可看到类似的菜单功能。

二:创建基本流程

1:创建菜单布局

  • 在res目录下新建menu文件夹。
  • 自定义XML布局(此处简化为供测试),以下是例子:
  • 2:创建Java代码

    private void showPopupMenu(View v) {    popupMenu = new PopupMenu(MainActivity.this, v);    MenuInflater inflater = popupMenu.getMenuInflater();    inflater.inflate(R.menu.long_menu, popupMenu.getMenu());    popupMenu.setOnMenuItemClickListener(this);    popupMenu.show();}
    • Line 1: 定义方法并传入依附View对象。
    • Line 2: 创建PopupMenu实例。
    • Line 3: 获取菜单布局并加载。
    • Line 4: 设置菜单条目点击监听。
    • Line 5: 显示PopupMenu。

    3:菜单显示与隐藏

    • 显示:调用popupMenu.show();
    • 隐藏:调用popupMenu.dismiss();

    4:子项动作监听

    @Overridepublic boolean onOptionsItemSelected(MenuItem item) {    switch (item.getItemId()) {        case sub_item_1: // 此处填入具体id            break;        case sub_item_2:            break;        // ...        default:            return super.onOptionsItemSelected(item);    }    return true;}

    三:基本属性

    PopupMenu支持设置onDismissListener来监听菜单消失事件。

    创建流程中的关键步骤如上所示,为开发人员提供了方便的操作方式。通过合理设计菜单布局和处理各子项点击事件,您可以实现任意功能需求。

    上一篇:Java之泛型简单理解
    下一篇:C# Visual Studio环境下窗口(Window)的属性操作

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年05月07日 22时26分27秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章

    Kubernetes实战(三十三)-外部Etcd集群部署与调优(更安全的数据存储策略) 2023-01-29
    Kubernetes实战(三十二)-Kubeadm 安装 Kubernetes v1.24.0 2023-01-29
    Kubernetes实战(三十)-HTTP 7层路由机制(Ingress) 2023-01-29
    Kubernetes实战(三)-定向调度(NodeSelector) 2023-01-29
    Kubernetes实战(九)-初始化容器(Init Container) 2023-01-29
    Kubernetes实战(二十七)-集群访问外部服务(Endpoints) 2023-01-29
    Kubernetes实战(二十三)-kubernetes二进制文件方式部署集群(安全)(上) 2023-01-29
    Kubernetes实战(二十九)-集群资源管理(CPU & Memory) 2023-01-29
    Kubernetes实战(二十二)-Etcd 集群部署(安全) 2023-01-29
    Kubernetes实战(二十五)-Flannel 网络部署(不推荐,不支持 Etcd3) 2023-01-29
    Kubernetes实战(二十八)-环境共享与隔离(Namespace) 2023-01-29
    Kubernetes实战(二十六)-高可用负载均衡与外部服务(Service) 2023-01-29
    Kubernetes实战(二十四)-kubernetes二进制文件方式部署集群(安全)(下) 2023-01-29
    Kubernetes实战(二十)-kubernetes二进制文件方式部署集群(非安全)(下) 2023-01-29
    Kubernetes实战(八)-定时任务(Cronjob) 2023-01-29
    Kubernetes实战(十一)-包管理工具(Helm) 2023-01-29
    Kubernetes实战(十七)-动态存储供应(StorageClass) 2023-01-29
    Kubernetes实战(十三)-标签选择器(Label) 2023-01-29
    Kubernetes实战(十九)-kubernetes二进制文件方式部署集群 (非安全)(上) 2023-01-29
    Kubernetes实战(十二)-集群资源监控工具(metrics-server) 2023-01-29