【开源】UltimateRecyclerView
UltimateRecyclerView
- https://github.com/cymcsg/UltimateRecyclerView
介绍:
UltimateRecyclerView 是一个实现了滑动刷新,上拉加载,滑动删除,拖动排序,滚动显示与隐藏toolbar等效果的RecyclerView控件。运行效果:

使用说明:
|
1
2
3
4
5
6
7
|
<com.marshalchen.ultimaterecyclerview.UltimateRecyclerView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/ultimate_recycler_view" app:recyclerviewClipToPadding="true" app:recyclerviewPadding="2dp"> </com.marshalchen.ultimaterecyclerview.UltimateRecyclerView> |
加载更多
|
1
|
ultimateRecyclerView.enableLoadmore(); |
设置ParallaxHeader
|
1
2
3
4
5
6
7
8
9
|
ultimateRecyclerView.setParallaxHeader(getLayoutInflater().inflate(R.layout.parallax_recyclerview_header, ultimateRecyclerView.mRecyclerView, false)); ultimateRecyclerView.setOnParallaxScroll(new UltimateRecyclerView.OnParallaxScroll() { @Override public void onParallaxScroll(float percentage, float offset, View parallax) { Drawable c = toolbar.getBackground(); c.setAlpha(Math.round(127 + percentage * 128)); toolbar.setBackgroundDrawable(c); } }); |
设置滑动刷新
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
ultimateRecyclerView.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { simpleRecyclerViewAdapter.insert("Refresh things", 0); ultimateRecyclerView.setRefreshing(false); // ultimateRecyclerView.scrollBy(0, -50); linearLayoutManager.scrollToPosition(0); } }, 1000); } }); |
滑动删除
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
ultimateRecyclerView.setSwipeToDismissCallback(new SwipeToDismissTouchListener.DismissCallbacks() { @Override public SwipeToDismissTouchListener.SwipeDirection dismissDirection(int position) { return SwipeToDismissTouchListener.SwipeDirection.BOTH; } @Override public void onDismiss(RecyclerView view, List<SwipeToDismissTouchListener.PendingDismissData> dismissData) { for (SwipeToDismissTouchListener.PendingDismissData data : dismissData) { simpleRecyclerViewAdapter.remove(data.position); } } @Override public void onResetMotion() { isDrag = true; } @Override public void onTouchDown() { isDrag = false; } }); |
拖动排序
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
dragDropTouchListener = new DragDropTouchListener(ultimateRecyclerView.mRecyclerView, this) { @Override protected void onItemSwitch(RecyclerView recyclerView, int from, int to) { simpleRecyclerViewAdapter.swapPositions(from, to); simpleRecyclerViewAdapter.clearSelection(from); simpleRecyclerViewAdapter.notifyItemChanged(to); if (actionMode != null) actionMode.finish(); Logs.d("switch----"); } @Override protected void onItemDrop(RecyclerView recyclerView, int position) { Logs.d("drop----"); ultimateRecyclerView.enableSwipeRefresh(true); } }; dragDropTouchListener.setCustomDragHighlight(getResources().getDrawable(R.drawable.custom_drag_frame)); ultimateRecyclerView.mRecyclerView.addOnItemTouchListener(dragDropTouchListener); |
动画效果
|
1
2
3
|
ultimateRecyclerView.setItemAnimator(Type.values()[position].getAnimator()); ultimateRecyclerView.getItemAnimator().setAddDuration(300); ultimateRecyclerView.getItemAnimator().setRemoveDuration(300); |
toolbar与浮动操作按钮的显示与隐藏
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
ultimateRecyclerView.setScrollViewCallbacks(new ObservableScrollViewCallbacks() { @Override public void onScrollChanged(int scrollY, boolean firstScroll, boolean dragging) { } @Override public void onDownMotionEvent() { } @Override public void onUpOrCancelMotionEvent(ObservableScrollState observableScrollState) { if (observableScrollState == ObservableScrollState.DOWN) { ultimateRecyclerView.showToolbar(toolbar, ultimateRecyclerView,getScreenHeight()); } else if (observableScrollState == ObservableScrollState.UP) { ultimateRecyclerView.hideToolbar(toolbar,ultimateRecyclerView,getScreenHeight()); } else if (observableScrollState == ObservableScrollState.STOP) { } } }); |
posted on 2015-04-29 10:19 wasdchenhao 阅读(447) 评论(0) 收藏 举报
浙公网安备 33010602011771号