이 예제는 참조에 대한 스프링 풀업 새로 고침 및 드롭 다운로드의 효과를 공유합니다. 특정 내용은 다음과 같습니다
의존:
'com.android.support:recyclerview-v7:25.3.1'compile 'com.liaoinstan.springview : library : 1.3.0'컴파일 파일 ( 'libs/glide-3.7.0.jar')을 컴파일합니다.
Activity_Main 레이아웃
<? xml version = "1.0"encoding = "utf-8"?> <linearlayout xmlns : android = "http://schemas.android.com/apk/res/android"xmlns : app = "http://schemas.android.com/apk/res-souto" XMLNS : 도구 = "http://schemas.android.com/tools : android : layout_width ="match_parent "android : layout_height ="mays_parent "android :"수직 "도구 : 컨텍스트 ="muhanxi.recycleview.mainactivity "> <com.liaoinstan.springview.widget.springview android : layout_width = "match_parent"android : id = "@+id/springview"android : layout_height = "match_parent"> <android.support.v7.widget.recyclerview android = "match _parent" Android : layout_height = "match_parent"Android : id = "@+id/recyclerview"/> </com.liaoinstan.springview.widget.springview> </linearlayout>
Mainactivity 메인 클래스
공공 계급 주전성은 활동을 확장합니다. 비공개 목록 <string> list = new ArrayList <> (); 개인 SpringView SpringView; Private LinearLayoutManager linearLayoutManager; @requiresapi (api = build.version_codes.gingerbread) @override protected void oncreate (Bundle SavedInstancestate) {super.oncreate (savedinstancestate); setContentView (R.Layout.Activity_Main); recyclerview = (RecyclerView) findViewById (r.id.recyclerView); list.add ( "http://f10.baidu.com/it/u=2881303562,336932824&fm=72"); list.add ( "http://f11.baidu.com/it/u=681755471,2018070071&fm=72"); list.add ( "http://f10.baidu.com/it/u=960650584,863938083&fm=72"); list.add ( "http://img0.imgtn.bdimg.com/it/u=783060973,4278100629&fm=27&gp=0.jpg"); list.add ( "http://img1.imgtn.bdimg.com/it/u=3743124979,3234956668&fm=27&gp=0.jpg"); list.add ( "http://img4.imgtn.bdimg.com/it/u=3468613159,957707785&fm=27&gp=0.jpg"); list.add ( "http://img3.imgtn.bdimg.com/it/u=2971205354,485034289&fm=27&gp=0.jpg"); list.add ( "http://f10.baidu.com/it/u=2881303562,336932824&fm=72"); list.add ( "http://f11.baidu.com/it/u=681755471,2018070071&fm=72"); list.add ( "http://f10.baidu.com/it/u=960650584,863938083&fm=72"); list.add ( "http://img0.imgtn.bdimg.com/it/u=783060973,4278100629&fm=27&gp=0.jpg"); list.add ( "http://img1.imgtn.bdimg.com/it/u=3743124979,3234956668&fm=27&gp=0.jpg"); list.add ( "http://img4.imgtn.bdimg.com/it/u=3468613159,957707785&fm=27&gp=0.jpg"); list.add ( "http://img3.imgtn.bdimg.com/it/u=2971205354,485034289&fm=27&gp=0.jpg"); // 레이아웃 관리자 설정 // new GridLayoutManager () 9 그리드 레이아웃 관리자 // new linearLayoutManager () ListView LayoutManager // // new StaggeredGridLayoutManager () Waterfall Flow LayoutManager // recyclerview.setlayoutmanager (New GridlayOutmanager (5)); // recyclerview.setLayoutManager (New StaggeredGridLayoutManager (3, linearLayout.vertical)); // RecyclerViewAdapter 어댑터 = 새로운 RecyclerViewAdapter (this, list); Multiadapter 어댑터 = 새로운 Multiadapter (this, list); linearLayoutManager = 새로운 linearLayoutManager (this, linearLayoutManager.vertical, false); recyclerview.setLayoutManager (linearLayoutManager); recyclerview.setadapter (어댑터); // // adapter.setilistener (new RecyclerViewadapter.listener () {// @override // public void onclick (view vovil onclick (view vovid on click) {// toast.maketext.this, this, "+position, toast.length.length (); // vopublkic (voply long}) {// //} //}); recyclerview.setonscrollListener (new RecyclerView.onScrollListener () {@override public void onscrollstatechanged (recyclerwiew recyclerview, int newstate) {peral.onscrollstatechanged (Recyclerview, NewState); linearlayoutmanager.findfirstibertor (linearlayoutmanager.findfirlayoutmanager) void onscrolled (RecyclerView RecyclerView, int dx, int dy) {super.onscrolled (RecyclerView, dx, dy); // recyclerview.setoni // recyclerview.additemdecoration (new HorizontalDividididideItemdecoration.builder (this) // .color (color.red) .build ()); SpringView = (SpringView) FindViewById (R.Id.SpringView); SpringView.SetHeader (새로운 DefaulTheader (this)); SpringView.SetFooter (새 기본 Footer (this)); SpringView.setListener (New SpringView.onFreshListener () {@override public void onrefresh () {// 다운로드 springView.onFinishFreshAndload ()} @Override public void onloadmore () {// on SpringView.onFinishFreshandLoad ();}); // Adapter.notifyDataSetchanged (); }} 레이아웃을 아래로 당기십시오
<? xml version = "1.0"alcoding = "utf-8"?> <linearlayout xmlns : android = "http://schemas.android.com/apk/res/android"Android : layout_width = "match_parent : andlayout_height ="wrap_content "and gravity :"wrap_content " <ImageView Android : src = "@mipmap/ic_launcher"android : scaleType = "centerCrop"Android : id = "@+id/item_simageview"android : layout_width = "match_parent"Android : layout_height = "100dp"/> </linearlayout>
레이아웃을 새로 고치십시오
<? xml version = "1.0"alcoding = "utf-8"?> <linearlayout xmlns : android = "http://schemas.android.com/apk/res/android"Android : layout_width = "match_parent : andlayout_height ="wrap_content "and gravity :"wrap_content " <ImageView Android : "@mipmap/ic_launcher"Android : id = "@+id/item_simageview"android : layout_width = "mays_parent"android : layout_height = "100dp"/> <textView : "@color/colorprimary" Android : layout_height = "wrap_content"Android : id = "@+id/item_textview"/> </linearlayout>
멀티 디 캡터 어댑터
공개 클래스 Multiadapter는 RecyclerView.adapter <recyclerview.viewholder> {개인 컨텍스트 컨텍스트; 개인 목록 <String> 목록; public multiadapter (Context Context, List <string> list) {this.context = context; this.list = list; } @override public recyclerview.viewholder oncreateviewholder (viewgroup parent, int viewtype) {if (viewtype == 0) {view view = layoutInflater.from (context) .inflate (r.layout.layout_fitem, parent, false); 새로운 fviewholder (보기)를 반환합니다. } else {view view = layoutInflater.from (context) .inflate (r.layout.layout_sitem, parent, false); 새 Sviewholder (보기)를 반환합니다. }} @override public int getItemViewType (int position) {return position % 2; } @override public void onbindViewholder (recyclerView.viewholder holder, int position) {if (holder instanceof fviewholder) {fviewholder fviewholder = (fviewholder) holder; fviewholder.itemstextView.settext (position+""); glide.with (context) .load (list.get (position)). // imageLoader.getInstance (). displayImage (list.get (position), fviewholder.itemsimageView); } else {sviewholder sviewholder = (sviewholder) 홀더; glide.with (context) .load (list.get (position)). // imageLoader.getInstance (). displayImage (list.get (position), sviewholder.itemsimageView); }} @override public int getItemCount () {return list.size (); } 정적 클래스 fviewholder 확장 recyclerview.viewholder {@bindview (r.id.item_simageview) imageView itemBiew; @BindView (r.id.item_textView) TextView itemStextView; fviewholder (보기보기) {Super (보기); Butterknife.bind (this, view); }} 클래스 sviewholder 확장 recyclerview.viewholder {@bindview (r.id.item_simageview) imageView itemBiew; sviewholder (보기보기) {Super (보기); Butterknife.bind (this, view); }}}위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.