1

我想滚动一段textview时间button处于按下状态。一旦用户释放button,我想停止滚动。我setOnTouchListener在按钮上使用。但我无法做到这一点。谁能帮助我并分享一些代码来做到这一点。

arrow_up.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                if (event.getAction() == MotionEvent.ACTION_DOWN) {
                    lastDown = System.currentTimeMillis();
                    System.out.println(System.currentTimeMillis());
                flag = true;
                method();
                } else if (event.getAction() == MotionEvent.ACTION_UP) {
                    System.out.println(System.currentTimeMillis() - lastDown);
                    flag = false;
                    method();
                }
                return false;
            }
        });

public void method() {
        while(flag == true){

            try {
                Thread.sleep(500);
                System.out.println("Flag === " + flag);
                tv.scrollBy(0, -20);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        }
4

1 回答 1

1

您可以通过为按钮创建 OnFocusChangeListener 来实现。

mButton.setOnFocusChangeListener(new View.OnFocusChangeListener() 
        { 
            @Override 
            public void onFocusChange(View v, boolean hasFocus) 
            { 
                if (hasFocus) 
                { 
                    //code
                }
                else
                {
                    //code
                }
            } 
        });
于 2012-11-02T12:58:32.313 回答