2016-08-17 6 views
0

Я хотел бы реализовать эту функцию в своем приложении.Проведите влево, чтобы обновить horizontall recyclerView

Проблема заключается в том, что все swipeRefreshLayouts предназначены только для жестов выталкивания.

Я хочу прокрутить влево/вправо в моем recyclerView, и когда я достиг максимального максимума, затем проведите макет и покажите обновление, как в swipeRefreshLayout.

Возможно ли это?

+1

Так вы проверить исходный код для ниспадающих макетов жест? Кажется, это хорошее место, чтобы получить вдохновение. – noev

ответ

0
public class CustomSwipeToRefresh extends SwipeRefreshLayout { 

    private int mTouchSlop; 
    private float mPrevX; 

    public CustomSwipeToRefresh(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(); 
       break; 

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

       if (xDiff > mTouchSlop) { 
        return false; 
       } 
     } 

     return super.onInterceptTouchEvent(event); 
    } 
} 

использовать этот CustomSwipeToRefresh вместо SwipeRefreshLayout

+0

Спасибо за ответ! Я уже использовал этот код, но он не работает, или, может быть, я ошибаюсь. Я не могу показать Loader с левой стороны, всегда отображая сверху. –