我有一个附加了onTouchListener的文本字段。当我触摸文本时,将触发ACTION_DOWN并将文本从其默认白色变为黑色。然后我取消操作ACTION_UP被触发,文本恢复为白色。

但是现在,当我触摸并按住文本时,该文本将变为黑色并保持原来的状态,因此我希望它使我在触摸并按住该文本时应变为黑色,然后再次变为白色,即使我的手指正在触摸它。

我怎样才能做到这一点!?

我尝试使用这样的东西:

boolean clicked = true;

    textfield.setOnTouchListener(new OnTouchListener(){
        public void onTouch(View v, MotionEvent e){
           if(m.getAction() == MotionEvent.ACTION_DOWN){
             if(clicked){
                // do something
                clicked = false;
             }
           if(m.getAction() == MotionEvent.ACTION_UP){
                clicked = true;
           }
        }
    }


由于某种原因它不起作用!

最佳答案

因此,当您按住文本时,是否希望它先变黑然后变白(而您仍然按住它)?

您可以将延迟的消息发布到Handler上,以在ACTION_DOWN事件后x毫秒内更改颜色。您必须手动设置颜色,而不是依靠文本颜色状态列表,因为这可能会干扰某些事情。

关于android - 暂停时onTouchListener不一致吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8212921/

10-12 01:51