UltimateRecyclerView發布,Android下新Listview的大殺器,android重新整理listview

來源:互聯網
上載者:User

UltimateRecyclerView發布,Android下新Listview的大殺器,android重新整理listview

一個多功能的RecyclerView,包括了下拉重新整理、載入更多,滑動刪除,拖拽排序、多種動畫、視差拖動、Toolbar漸層、Toolbar和FAB隨著滾動出現消失等等效果,都可以放在同一個RecyclerVIew中並自由配置。

項目地址:https://github.com/cymcsg/UltimateRecyclerView

Description

UltimateRecyclerView is a RecyclerView(advanced and flexible version of ListView) with pulling to refresh, loading more, swiping to dismiss, draging and drop, animations ,show or hide toolbar and FAB when scrolling and many other features.You can use it just like RecyclerView.

Notice that UltimateRecyclerView is a project under development.

Features:
  • Swipe to refresh(using android.support.v4.widget.SwipeRefreshLayout)
  • Many kinds of animations
  • Swipe to dismiss
  • Parallax head view
  • Drag and drop
  • Loading more when reach the last item(infinite scrolling)
  • Custom views in loading more
  • Showing or hiding toolbar and floating button when scrolling
Upcoming features:
  • More animations
  • Colorful style of Swipe to refresh

If you have some good idea, please mention us.My email is cymcsg # gmail.com

Welcome to fork.If you want to use a rapid development framework for developing apps,you can try UltimateAndroid Framework.Screenshot




Sample

You can clone the project and compile it yourself (it includes a sample), or you can check it out already compiled at Google Play

Notice that it might not be the latest version

Quick Setup(Basic Usage)1.Integration
repositories {        jcenter()    }dependencies {    ...    compile 'com.marshalchen.ultimaterecyclerview:library:0.2.1'}
2.Usage:
<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>
3.Features:

Loading more:

  ultimateRecyclerView.enableLoadmore();

Set ParallaxHeader:

 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);            }        });

Set swipe to refresh:

 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);            }        });

Set swipe to dismiss:

  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;            }        }); ``` Drag and drop: ```java    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);

Animations:

java
ultimateRecyclerView.setItemAnimator(Type.values()[position].getAnimator());
ultimateRecyclerView.getItemAnimator().setAddDuration(300);
ultimateRecyclerView.getItemAnimator().setRemoveDuration(300);

Showing and hiding toolbar and floating button:

java
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) {
}
}
});

If you want to see more details,you can check the demo.

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.