Cet exemple partage l'effet de la rafraîchissement de traction à ressort et du chargement déroulant pour votre référence. Le contenu spécifique est le suivant
Dépendance:
compiler 'com.android.support:RecyclerView-v7:25.3.1' compile 'com.liaoinstan.springView: Library: 1.3.0' Compile Files ('libs / glide-3.7.0.jar') Activity_main Dayout
<? 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-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="muhanxi.recycleview.MainActivity"> <com.liaoinstan.springview.widget.SpringView Android: Layout_Width = "Match_parent" Android: id = "@ + id / springview" Android: Layout_Height = "Match_Parent"> <ndroid.support.v7.widget.recyclerview Android: Layout_Width = "Match_Parent" Android: LAVEVER_HEAUVEM </com.liaoinstan.springView.widget.springView> </ linearlayout>
Classe principale de la mainactivité
La classe publique MainActivity étend l'activité {private recyclerView recyclerView; List privé <string> list = new ArrayList <> (); SpringView privé Springview; privé 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"); // Configuration du gestionnaire de mise en page // new GridLayoutManager () Nine-Grid Layout Manager // new linearlayoutmanager () ListView LayoutManager // // new StuagedGridLayoutManager () Waterfall Flow LayoutManager // Recyclerview.SetLayoutManager (New GridgeoutManager (This, 5)); // recyclerView.SetLayoutManager (new STAGEREDGRIDLAYOUTMANGER (3, linearlayout.vertical)); // recyclerViewAdapter adapter = new recyclerViewAdapter (this, list); MultiAdapter Adapter = new MultiAdapter (this, list); linearlayoutmanager = new linearlayoutManager (this, linearlayoutmanager.vertical, false); recyclerView.SetLayoutManager (linearlayoutManager); recyclerView.SetAdapter (adaptateur); // /- // //} //}); recyclerView.SetonscrollListener (new recyclerView.OnScrollListener () {@Override public void onScrollStatechanged (recyclerView recyclerView, int NewState) {super.OnScrollStatechanged (recyclerView, NewState); // linearlayoutmanageger onScrolled (recyclerView recyclerView, int dx, int dy) {super.onscrolled (recyclerView, dx, dy);}}); // recyclerView.Setoni // recyclerView.AdditemDecoration (new HorizontaldividerItemDecoration.Builder (this) // .Color (Color.red) .Build ()); SpringView = (SpringView) findViewByid (R.Id.SpringView); SpringView.sethEader (New DefaulTheader (This)); SpringView.setFooter (nouveau defaultFooter (this)); SpringView.SetListener (new SpringView.onFreshListener () {@Override public void onRefresh () {// télécharger springview.onfinishfreshandload ();} @Override public void onloadmore () {// sur springView.onfinishFreshandLoad ();}}); // adaptateur.NotifyDataSetChanged (); }} Abaisser la disposition
<? xml version = "1.0" Encoding = "UTF-8"?> <linearlayout xmlns: android = "http://schemas.android.com/apk/res/android" Android: Layout_Width = "Match_Parent" Android: Layout_Height = "WINCE_CONTENT" Android: Gravit Android: src = "@ mipmap / ic_launcher" Android: scaletype = "CenterCrop" Android: id = "@ + id / item_simageView" Android: Layout_Width = "Match_parent" Android: Layout_Height = "100DP" /> </ linearlayout>
Actualiser la disposition
<? xml version = "1.0" Encoding = "UTF-8"?> <linearlayout xmlns: android = "http://schemas.android.com/apk/res/android" Android: Layout_Width = "Match_Parent" Android: Layout_Height = "WINCE_CONTENT" Android: Gravit Android: Android: id = "@ + id / item_simageView" Android: Layout_Width = "Match_parent" Android: Layout_Height = "100DP" /> <TextView Android: background " Android: Layout_Height = "wrap_content" Android: id = "@ + id / item_textview" /> </ linearlayout>
Adaptateur multiadaptoral
La classe publique MultiAdapter étend recyclerView.adapter <cyclerView.ViewHolder> {contexte privé; Liste privée <string> liste; Multiadapter public public (contexte de contexte, liste <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); return new fViewHolder (View); } else {View View = Layoutinflater.from (context) .inflate (r.layout.layout_sitem, parent, false); return new sviewHolder (vue); }} @Override public int getItemViewType (position int) {position de retour% 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)). Dans (fViewHolder.ItemSimageView); // ImageLoader.getInstance (). DisplayImage (list.get (position), fViewHolder.ItemSimageView); } else {sviewHolder sViewHolder = (sviewHolder) Holder; Glide.with (context) .load (list.get (position)). Dans (sViewHolder.ItemSimageView); // ImageLoader.getInstance (). DisplayImage (list.get (position), sViewHolder.ItemSimageView); }} @Override public int getItemCount () {return list.size (); } classe statique fViewHolder étend recyclerView.ViewHolder {@bindView (r.id.item_simageView) itelesView itementsImageView; @BindView (r.id.item_textView) TextView itemStExtView; FViewHolder (vue d'affichage) {super (vue); Butterknife.bind (ceci, vue); }} class SViewHolder étend recyclerView.ViewHolder {@bindView (r.id.item_simageView) itelesView itemSimageView; SviewHolder (afficher la vue) {super (vue); Butterknife.bind (ceci, vue); }}}Ce qui précède est tout le contenu de cet article. J'espère que cela sera utile à l'apprentissage de tous et j'espère que tout le monde soutiendra davantage Wulin.com.