gridView.setOnItemClickListener 点击没有反应

gridView.setOnItemClickListener 点击没有反应
我个人是因为同时设置了 gridView.setOnTouchListener 和 gridView.setOnItemClickListener,而且在 gridView.setOnTouchListener 没有调用performClick(); 其实他也报错 黄牌了,但是我之前也不理解,现在知道他会把点击动作吞掉,于是就加上performClick();
而且发现 直接在最后写上

v.performClick();
return true;

是不行的,必须这样写

return  v.performClick();
  //设置了 setOnTouchListener 就不会 监听到 setOnItemClickListener
        gridView.setOnTouchListener((v, event) -> {
            //v.performClick();
            //onTouch lambda should call View#performClick when a click is detected
            //event.getAction()
            //MotionEvent 当触摸
            Log.d("TAG", "initGrid:setOnTouchListener ");

            switch (event.getAction()) {
                case MotionEvent.ACTION_BUTTON_PRESS:
                    break;
                case MotionEvent.ACTION_DOWN:
                    //int waitMs=3000;
                    int waitMs = 2000;
                    ObjectAnimator.ofFloat(binding.person, MoveConstant.translationX, event.getRawX()).setDuration(waitMs).start();
                    ObjectAnimator.ofFloat(binding.person, MoveConstant.translationY, event.getRawY()).setDuration(waitMs).start();

                    //打开一个答题程序

                    new Handler(message -> {
                       
                        Log.d("TAG", "initGrid: AlertDialog");
                        new AlertDialog.Builder(activity).setTitle("恭喜获得碎片").setMessage("恭喜获得碎片").
                                setPositiveButton("确定", (dialog, which) -> {
                                }).
                                setNegativeButton("取消", ((dialog, which) -> {
                                })).show();
//                        HttpUtil.post()
                        return false;
                    }).sendEmptyMessageDelayed(0, waitMs); // 延迟3秒

                    break;
                default:
                    break;

            }
            Log.d("performClick", "initGrid: ");
            return v.performClick();


            //return true;
        });


        gridView.setOnItemClickListener((adapterView, view, position, id) -> {
            Log.d("adapterView", "initGrid: " + adapterView);
            Log.d("view", "initGrid: " + view);
            Log.d("position", "initGrid: " + position);
            Log.d("id", "initGrid: " + id);


        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值