2015-09-17 35 views
5

SwipeRefreshLayout jest tak czuły, że podczas przesuwania ekranu w poziomie, z niewielkim ruchem w pionie, pojawi się wskaźnik "pull to refresh". Jak mogę tego uniknąć? SwipeRefreshLayout posiada funkcjęCzy możemy ustawić odległość do wskaźnika wyzwalania dla SwipeRefreshLayout?

public void setDistanceToTriggerSync (int distance) 

może to ma coś

public void setDistanceToTriggerIndicator (int distance) 

pokazać wskaźnik dopiero po pewnym pionowej odległości przemieszcza się w dół, czy też macie jakieś prace wokół?

Dzięki!

+2

Możliwe duplikat [HorizontalScrollView wewnątrz SwipeRefreshLayout] (http://stackoverflow.com/questions/23989910/horizontalscrollview-inside-swiperefreshlayout) – Sufian

Odpowiedz

2

Hej @ Viky Mam do czynienia z tym samym problemem z View pager wewnątrz odświeżania układu odświeżania i znalazłem to rozwiązanie jest idealne nadzieję, że to pomoże.

Następujący kod pochodzi z this SO answer:

public class MySwipeRefreshLayout extends SwipeRefreshLayout { 

    private int mTouchSlop; 
    private float mPrevX; 
    // Indicate if we've already declined the move event 
    private boolean mDeclined; 

    public MySwipeRefreshLayout(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     mTouchSlop = ViewConfiguration.get(context).getScaledTouchSlop(); 
    } 

    @Override 
    public boolean onInterceptTouchEvent(MotionEvent event) { 

     switch (event.getAction()) { 
      case MotionEvent.ACTION_DOWN: 
       mPrevX = MotionEvent.obtain(event).getX(); 
       mDeclined = false; // New action 
       break; 

      case MotionEvent.ACTION_MOVE: 
       final float eventX = event.getX(); 
       float xDiff = Math.abs(eventX - mPrevX); 

       if (mDeclined || xDiff > mTouchSlop) { 
        mDeclined = true; // Memorize 
        return false; 
       } 
     } 

     return super.onInterceptTouchEvent(event); 
    } 

} 
+0

Dzięki bardzo! To działa! –

+2

Zaznacz pytania jako duplikaty, jeśli uważasz, że pytanie jest takie samo. – Sufian

+0

@Sufian To pytanie ma o wiele bardziej znaczący tytuł (jak/dlaczego go znalazłem) niż starsze pytanie SO. Zastanawiałeś się tylko, czy oznaczenie tego pytania jako duplikatu będzie miało wpływ na to, jak jest on wykrywalny? –