2014-09-03 10 views
1

Я использую SwipeRefreshLayout в ящике. Когда я старую прокрутку вверх и вниз в списке, жест должен быть прямо вверх и вниз. Если палец слегка движется сбоку, не поднимая его, жестом прокрутки останавливается и начинает жест, чтобы открыть, закрыть ящик. Если я не использую SwipeRefreshLayout, доза жестов прокрутки не останавливается, пока я не подниму палец.SwipeRefreshLayout обнаружение жестов в ящике

Это расположение:

<android.support.v4.widget.SwipeRefreshLayout 
     android:id="@+id/swipe_to_refresh_lisview_container" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:orientation="vertical" 
     tools:ignore="NestedWeights" > 

     <views.IndexableListView 
      android:id="@+id/listview" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:background="#FFFFFF" /> 
    </android.support.v4.widget.SwipeRefreshLayout> 

код такой же, как этот: http://antonioleiva.com/swiperefreshlayout/

ответ

3

У меня была такая же проблема. Вы должны «заблокировать» ящик во время прокрутки и разблокировать его снова, когда прокрутка даже закончится. Для этого я использовал 2 вещи:

  1. добавить OnScrollListener к вашему ListView, как:

    mDrawerListView.setOnScrollListener(new AbsListView.OnScrollListener() { 
        @Override 
        public void onScrollStateChanged(AbsListView absListView, int i) { 
         if (i == SCROLL_STATE_IDLE) 
          mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED); 
         else 
          mDrawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_OPEN); 
        } 
    
        @Override 
        public void onScroll(AbsListView absListView, int i, int i2, int i3) { 
    
        } 
    }); 
    
  2. Чтобы избежать некоторых проблем пытаются уволить «обновления событие», вы должны реализовать работу вокруг предложенной by spencer по этой ссылке: Issue 69074