'안드로이드스크롤뷰터치중복이벤트'에 해당되는 글 1건

  1. 2023.12.31 Android 스크롤뷰 터치 이벤트, 애니메이션 동시 동작하지 않도록 적용
Android2023. 12. 31. 20:16

스크롤뷰로 스크롤을 내리려는데, 터치 효과(애니메이션 효과 등)와 함께 동작할 수도 있다.

그럴때는 터치 이벤트 리스너에서 분기를 체크해서 이벤트를 제어한다.\

 

 

binding.getRoot().setOnTouchListener(new View.OnTouchListener() {
    private float initialY, finalY;
    private boolean isScrolling;

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                initialY = event.getY();
                isScrolling = false; //스크롤중인지 여부
                break;
            case MotionEvent.ACTION_MOVE:
                finalY = event.getY();
                isScrolling = Math.abs(finalY - initialY) > 10; // 스크롤 감지 기준값(예: 10픽셀. 해당 값으로 범위를 지정)
                break;
            case MotionEvent.ACTION_UP:
                if (!isScrolling && flipFlag) { //flipFlag는 뒤집어지는 이벤트를 위한 플래그
                    FlashCardDialog flashCardDialog = (FlashCardDialog) getActivity();
                    flashCardDialog.animationFlip(); //뒤집기 애니메이션
                    final Handler handler = new Handler(Looper.getMainLooper());
                    handler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            if (binding != null) {
                               // TODO 이벤트!
                            }
                        }
                    }, 500);
                    flipFlag = !flipFlag;
                }
                break;
        }
        return false;
    }
});

 

 

 

 

Posted by 사슴영혼'-'