Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 7 additions & 19 deletions Assets/PullToRefresh/Scripts/UIRefreshControl.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
using System;
using System;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.UI;
Expand Down Expand Up @@ -30,7 +30,7 @@ namespace PullToRefresh
{
public class UIRefreshControl : MonoBehaviour
{
[Serializable] public class RefreshControlEvent : UnityEvent {}
[Serializable] public class RefreshControlEvent : UnityEvent { }

[SerializeField] private ScrollRect m_ScrollRect;
[SerializeField] private float m_PullDistanceRequiredRefresh = 150f;
Expand Down Expand Up @@ -70,11 +70,12 @@ public RefreshControlEvent OnRefresh
set { m_OnRefresh = value; }
}

/// <summary>
/// <summary>
/// Call When Refresh is End.
/// </summary>
public void EndRefreshing()
{
m_ScrollRect.vertical = true;
m_IsPulled = false;
m_IsRefreshing = false;
m_LoadingAnimator.SetBool(_activityIndicatorStartLoadingName, false);
Expand All @@ -90,21 +91,6 @@ private void Start()
m_ScrollRect.onValueChanged.AddListener(OnScroll);
}

private void LateUpdate()
{
if (!m_IsPulled)
{
return;
}

if (!m_IsRefreshing)
{
return;
}

m_ScrollRect.content.anchoredPosition = m_PositionStop;
}

private void OnScroll(Vector2 normalizedPosition)
{
var distance = m_InitialPosition - GetContentAnchoredPosition();
Expand Down Expand Up @@ -143,11 +129,13 @@ private void OnPull(float distance)
m_LoadingAnimator.SetBool(_activityIndicatorStartLoadingName, true);
}

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

m_Progress = 0f;
Expand Down