簡體   English   中英

MotionEvent.ACTION_UP無法正常工作

[英]MotionEvent.ACTION_UP not working properly

我正在嘗試為我的自定義列表視圖實現onTouchListner,以檢測滑動。 在這段代碼中,這兩種切換方式( ACTION_DOWNACTION_UP )都可以工作,但是當ACTION_UP觸發我在ACTION_UP的值時,downy變為0。 並且用於檢測滑動的代碼總是說向右滑動(即使我只是單擊!!!)

            view.setOnTouchListener(new OnTouchListener() {

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

            float downx = 0,downy = 0, upx = 0, upy = 0, movex = 0, movey = 0;
                switch(event.getAction())
                {


                    case(MotionEvent.ACTION_DOWN):
                    {
                        downx = event.getX();
                        downy = event.getY();
                        Log.i("TOUCH","DOWN");
                        break;

                    }                       

                    case(MotionEvent.ACTION_UP):
                    {
                        upx = event.getX();
                        upy = event.getY();
                        Log.i("TOUCH","UP");
                        if(downx  < upx)
                        {
                            Log.w("TODO","Swiped right");

                        }
                        else if(upx < downx)
                        {
                            Log.w("TODO","Swiped left");
                        }

                        break;
                    }

            }

                Log.i("TOUCH_DOWN","x = "+downx+"y = "+ downy); 
                Log.i("TOUCH_MOVE","x = "+movex+"y = "+ movey); 
                Log.i("TOUCH_UP","x = "+upx+"y = "+ upy);   

            return true;
        }
    });



    return view;
}

}

有什么方法可以使它發揮作用嗎? 謝謝

  @Override
  public boolean onTouch(View v, MotionEvent event)  {
       float downx = 0,downy = 0, upx = 0, upy = 0, movex = 0, movey = 0;

每個觸摸事件都會調用onTouch ,從而重新初始化所有本地成員。 如果您想避免這種情況,請將其保留為班級成員,

   float downx = 0,downy = 0, upx = 0, upy = 0, movex = 0, movey = 0;

每次調用onTouch()時,它們都會初始化。
將它們聲明為班級成員。

暫無
暫無

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

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