2015-09-17 61 views
5

SwipeRefreshLayout, ekran üzerinde yatay olarak kaydırdığımda, yalnızca küçük bir dikey hareketle "yenileme için çek" göstergesinin gösterileceği kadar hassastır. Bundan nasıl kurtulabilirim? SwipeRefreshLayout bir işlevSwipeRefreshLayout için tetikleyici göstergesine uzaklık ayarlayabilir miyiz?

public void setDistanceToTriggerSync (int distance) 

sahiptir can o

public void setDistanceToTriggerIndicator (int distance) 

gibi bir şey dikey mesafenin belli bir miktar aşağı doğru hareket ettirilir sonra göstergeyi göstermek veya siz etrafında bazı işler var mı sahiptir?

Teşekkürler!

+2

olası çift (http://stackoverflow.com/questions/23989910/horizontalscrollview-inside-swiperefreshlayout) – Sufian

cevap

2

Hey @Viky İçinde tokat yenileme düzeninde View pager ile aynı sorunla karşılaştım ve bu çözümün yardımcı olacağını umuyorum.

sonra kod this SO answer alınır: [SwipeRefreshLayout içinde HorizontalScrollView] arasında

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

sayesinde çok fazla! İşe yarıyor! –

+2

Lütfen soruyu aynı olduğunu düşünüyorsanız, soruları çift olarak işaretleyin. – Sufian

+0

@Sufian Bu soru, daha eski bir sorudan çok daha anlamlı bir başlık (nasıl bulduğumu/neden buldum) içeriyor. Bu soruyu bir kopya olarak işaretleyip işaretlemenin, nasıl keşfedilebileceğine dair bir fikri olup olmadığını merak ediyor muydu? –