线性布局如何同时添加OnTouchListener和OnClickListener?

How to Add OnTouchListener and OnClickListener at a time in Linear Layout?

如何在 LinearLayout 中同时添加事件 OnTouchListenerOnclickListener

这是我的代码,但不起作用

final LinearLayout llTimeTable=(LinearLayout) findViewById(R.id.llSehriIftar);
    llTimeTable.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MainActivity.this, Ramadandate.class);
            startActivity(intent);

        }
    });
    llTimeTable.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:

            llTimeTable.setBackgroundColor(Color.rgb(51, 51, 255));
                break;

            case MotionEvent.ACTION_UP:

                // set color back to default
                llTimeTable.setBackgroundColor(Color.rgb(76, 106, 225));

                break;
            }
            return true;
        }
    });

但是,当我只使用 OnclickListener 时它有效,而当我仅使用 onTouch 方法时它有效,但两者同时无效。

由于触摸事件更通用,它首先被调用,然后 onClick 被触发,但是,由于您的 onTouch returns 为真,事件被消耗并且 onClick 是从未达到。

只需将 onTouch 更改为 return false 即可调用您的 onClick。

 llTimeTable.setOnTouchListener(new View.OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {

        //Your code.......
            return false;
        }
    });

确保 return 在 TouchListener 中设置为 false,因为如果 return 为 true 则该事件将不会传递给其他侦听器。