博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
取消Toolbar菜单长按时,出现的toast
阅读量:5746 次
发布时间:2019-06-18

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

hot3.png

Android的Toolbar里面,可以添加菜单,但是使用过程中发现了一点问题,就是菜单的item长按时,会在下面出现一个toast,toast当前菜单的title。但是我们并不想有这个toast。

在网上搜了,并没有很好的解决方法。其中一种解决方法是,通过findViewById(R.id.menu_id)找到对应的菜单item,然后给这个菜单的itemview设置OnLongClickListener

final View v = findViewById(R.id.menu_id);        if (v != null) {            v.setOnLongClickListener(new View.OnLongClickListener() {                @Override                public boolean onLongClick(View v) {                    return false;                }            });        }

这个方法虽然解决设置指定的菜单长按弹出toast,但对应隐藏到省略号的那个item长按没有解决,因为那个view不是自己定义的,是系统定义的。网上搜不到,然后我自己写了一个工具类。

原理是遍历Toolbar的childview,找到其中显示菜单的ActionMenuView,然后遍历这个ActionMenuView,把菜单item的OnLongClickListener都设置为null,就ok了。

import android.support.v7.widget.ActionMenuView;import android.support.v7.widget.Toolbar;/** * Created by zhangyi on 2017/12/11. */public class ToolbarUtil {    /**     * 取消Toolbar菜单长按时,出现的toast     */    public static void cancelToast(Toolbar toolbar){        if (toolbar == null) {            return;        }        toolbar.post(new Runnable() {            @Override            public void run() {                for (int i = 0; i < toolbar.getChildCount(); i++) {                    if(toolbar.getChildAt(i) instanceof ActionMenuView){                        ActionMenuView actionMenuView= (ActionMenuView) toolbar.getChildAt(i);                        for (int i1 = 0; i1 < actionMenuView.getChildCount(); i1++) {                            actionMenuView.getChildAt(i1).setOnLongClickListener(null);                        }                        break;                    }                }            }        });    }}

参考链接:

转载于:https://my.oschina.net/u/2606060/blog/1587908

你可能感兴趣的文章
MFC多线程的创建,包括工作线程和用户界面线程
查看>>
我的友情链接
查看>>
FreeNAS8 ISCSI target & initiator for linux/windows
查看>>
cvs文件提交冲突解决方案
查看>>
PostgreSQL数据库集群初始化
查看>>
++重载
查看>>
Rainbond 5.0.4版本发布-做最好用的云应用操作系统
查看>>
nodejs 完成mqtt服务端
查看>>
Spring IoC容器初的初始化过程
查看>>
sql server 触发器
查看>>
[工具]前端自动化工具grunt+bower+yoman
查看>>
自动化测试之WatiN(2)
查看>>
关于完成生鲜电商项目后的一点总结
查看>>
noip2012 普及组
查看>>
第二阶段 铁大Facebook——十天冲刺(10)
查看>>
Java判断是否为垃圾_Java GC如何判断对象是否为垃圾
查看>>
多项式前k项和java_多项式朴素贝叶斯softmax改变
查看>>
java数组只能交换0下标和n_编程练习-只用0交换排序数组
查看>>
centos7安装mysql视频教程_centos7安装mysql(完整)
查看>>
php图片赋值,php如何优雅地赋值
查看>>