コード例 #1
0
        private void ResolveState()
        {
            if (_frontView == null)
            {
                return;
            }

            if (_frontViewLastX > _frontViewX + _frontViewW / SWIPE_THRESHOLD_WIDTH_RATIO)
            {
                SwipeRight();
            }
            else if (_frontViewLastX < _frontViewX - _frontViewW / SWIPE_THRESHOLD_WIDTH_RATIO)
            {
                SwipeLeft();
            }
            else
            {
                float diffX = Math.Abs(_downX - _upX);
                float diffY = Math.Abs(_downY - _upY);

                if (diffX <= 5 && diffY <= 5)
                {
                    int pressTime = (int)(_upTime - _downTime);
                    if (pressTime > LONG_PRESS_TIME)
                    {
                        _swipeListener.OnLongClick(_touchedViewHolder.ItemData);
                    }
                    else
                    {
                        _swipeListener.OnClick(_touchedViewHolder.ItemData);
                    }
                }

                ResetPosition();
            }

            Clear();
        }