簡體   English   中英

Android onTouch Listener事件

[英]Android onTouch Listener event

我正在使用ontouch事件,但我遇到的問題是它調用down事件但它是nt調用move事件或UP事件檢查以下代碼

public class DragNewActivity extends Activity implements OnTouchListener  {

    private float X;
    private float Y;
    private int width;
    private int height;
    private CharSequence s;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.d("D","D");

        TextView tv1 = (TextView)findViewById(R.id.tv1);
        TextView tv2 = (TextView)findViewById(R.id.tv2);
        tv1.setOnTouchListener(this);
        //tv2.setOnTouchListener(this);
        }

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

        //int action = event.getAction();
        switch (event.getAction()){
        case MotionEvent.ACTION_DOWN:
            Log.d("DOWN","DOWN");
        break;

        case MotionEvent.ACTION_MOVE:
            Log.d("MOVE","MOVE");
        break;

        case MotionEvent.ACTION_UP:
            Log.d("UP","UP");
            X = event.getRawX();
            Y = event.getRawY();

            Display display = getWindowManager().getDefaultDisplay(); 
            width=display.getWidth()/2;
            height=display.getHeight()/2;
            Log.e("X", X+"");
            Log.e("Y", Y+"");
            Log.e("ScX", width+"");
            Log.e("ScY", height+"");
            if(X>width && Y>height){
                Log.e("SUFI", "Event ho gyuaaaaaaa");
            }

        break;
        }
        return false;
    }
}

不要從ontouch返回false返回true,這樣它就會聽下一個動作事件

我知道這有點老了,但我認為事件發生的順序實際上更准確:

向下 - >移動 - >向上。

對於每個事件,方法“OnTouch”至少被調用一次,而onMove被移動時被多次調用。

因此,如果您從Down返回false,它將不會繼續移動,然后向上移動。

如果從Down返回true,它將繼續移動。 如果Move返回false,則不會繼續向上,依此類推。

你需要返回true而不是return false。

在實現onTouch時,它必須返回true

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM