Esempio n. 1
0
        private void OnPull(float distance)
        {
            if (m_IsRefreshing && Math.Abs(distance) < 1f)
            {
                m_IsRefreshing = false;
            }

            if (m_IsPulled && m_ScrollView.Dragging)
            {
                return;
            }

            m_Progress = distance / m_PullDistanceRequiredRefresh;

            if (m_Progress < 1f)
            {
                return;
            }

            // Start animation when you reach the required distance while dragging.
            if (m_ScrollView.Dragging)
            {
                m_IsPulled = true;
                m_LoadingAnimator.SetBool(_activityIndicatorStartLoadingName, true);
            }

            // ドラッグした状態で必要距離に達したあとに、指を離したらリフレッシュ開始
            if (m_IsPulled && !m_ScrollView.Dragging)
            {
                m_IsRefreshing = true;
                m_OnRefresh.Invoke();
            }

            m_Progress = 0f;
        }
Esempio n. 2
0
        private void OnPull(float distance)
        {
            if (m_IsRefreshing && Math.Abs(distance) < 1f)
            {
                m_IsRefreshing = false;
            }

            if (m_IsPulled && m_ScrollView.Dragging)
            {
                return;
            }

            if (m_IsPulled && !m_ScrollView.Dragging)
            {
                m_IsRefreshing = true;
                m_OnRefresh.Invoke();
            }

            m_Progress = distance / m_PullDistanceRequiredRefresh;

            if (m_Progress < 1f)
            {
                return;
            }

            m_Progress = 0f;
            m_IsPulled = true;
        }