2015-07-26 1 views
6

Je veux utiliser un effet de rebond sur un RecyclerView. Un effet de rebond à chaque fois que je dépasse le contenu ...Effet de rebond sur RecyclerView

Existe-t-il une bibliothèque ou un exemple pour cela?

+0

Avez-vous pu en trouver un? –

+0

malheureusement pas encore ... – prom85

+2

ici j'ai vu un lib nommé [Bounce] (https://github.com/surahul/Bounce) peut vous aider. – xiaominglui

Répondre

1

Vous pouvez utiliser cette bibliothèque https://github.com/EverythingMe/overscroll-decor Donc, vous devez créer votre propre ScrollDecorAdapter comme celui-ci

public class CustomRecyclerViewOverScrollDecorAdapter extends RecyclerViewOverScrollDecorAdapter { 
RecyclerView mRecyclerView; 

public CustomRecyclerViewOverScrollDecorAdapter(RecyclerView recyclerView) { 
    super(recyclerView); 
    mRecyclerView = recyclerView; 
} 

@Override 
public boolean isInAbsoluteEnd() { 
    LinearLayoutManager linearLayoutManager = (LinearLayoutManager) mRecyclerView.getLayoutManager(); 
    if (linearLayoutManager.getOrientation() == LinearLayoutManager.HORIZONTAL) { 
     return !mRecyclerView.canScrollHorizontally(1); 
    } else { 
     return !mRecyclerView.canScrollVertically(1); 
    } 
    } 
} 

Et maintenant dans votre utilisation fragment/activité

CustomVerticalOverScrollDecorator overScrollDecorator = 
      new CustomVerticalOverScrollDecorator(new CustomRecyclerViewOverScrollDecorAdapter(yourRecyclerView)); 

Où smth de CustomVerticalOverScrollDecorator comme celui-ci

public class CustomVerticalOverScrollDecorator extends VerticalOverScrollBounceEffectDecorator { 

public CustomVerticalOverScrollDecorator(IOverScrollDecoratorAdapter viewAdapter) { 
    this(viewAdapter, DEFAULT_TOUCH_DRAG_MOVE_RATIO_FWD, DEFAULT_TOUCH_DRAG_MOVE_RATIO_BCK, DEFAULT_DECELERATE_FACTOR); 
} 

public CustomVerticalOverScrollDecorator(IOverScrollDecoratorAdapter viewAdapter, float touchDragRatioFwd, float touchDragRatioBck, float decelerateFactor) { 
    super(viewAdapter, touchDragRatioFwd, touchDragRatioBck, decelerateFactor); 

    // Some setup on the view itself. 
    } 
    } 
9

J'ai aussi n'a trouvé aucune bibliothèque prenant en charge l'effet de rebond pour RecyclerView. Finalement, j'ai fini par mettre en place une nouvelle bibliothèque par moi-même. Consultez ma bibliothèque overscroll-bouncy-android. . Il prend actuellement en charge RecyclerView avec LinearLayoutManager. Je travaille également sur ListView et ScrollView.

Pour utiliser ma bibliothèque:

Étape 1:

dependencies { 
    compile 'com.chauthai.overscroll:overscroll-bouncy:0.1.0' 
} 

Étape 2:

<com.chauthai.overscroll.RecyclerViewBouncy 
    android:id="@+id/recyclerView" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"/> 
+0

c'est exactement ce que je cherche! Thanks man –

+0

J'ai RecyclerViewBouncy dans SwipeRefreshLayout, et il semble que RecyclerViewBouncy avale l'événement et l'actualisation n'est pas déclenchée – Delorean