简体   繁体   中英

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

How can I add a event OnTouchListener and OnclickListener at a time in LinearLayout ?

Here is my code but doesn't work

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;
        }
    });

But when I only use OnclickListener it works, and when I use only onTouch method it works, but both at the same time doesn't work.

Since Touch Event is more general, it is called first, then the onClick gets fired, however, since your onTouch returns true, the event is consumed and onClick is never reached.

Simply change onTouch to return false and your onClick will be called.

 llTimeTable.setOnTouchListener(new View.OnTouchListener() {

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

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

Make sure you return false in the TouchListener becuase if you return true then that event will not be passed to other listeners.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM