Este exemplo compartilha o efeito da atualização do pull-up da primavera e do carregamento suspenso para sua referência. O conteúdo específico é o seguinte
Dependência:
Compile 'com.android.support:recyclerview-v7:25.3.1' compile 'com.liaoinstan.springview: biblioteca: 1.3.0' arquivos de compilação ('libs/glide-3.7.0.jar') Atividade_main Layout
<? xml versão = "1.0" coding = "utf-8"?> <linearlayout xmlns: Android = "http://schemas.android.com/apk/res/android" xmlns: app = http:/schema.android " xmlns: ferramentas = "http://schemas.android.com/tools" Android: layout_width = "match_parent" Android: Layout_Height = "Match_Parent" Android: Orientation = "Vertical" Ferramentas: Context = "Muhanxi.ReclyView.MainArtivity" <com.liaoinstan.springview.widget.springview Android: layout_width = "match_parent" Android: id = "@+id/springview" Android: Layout_Height = "Match_Parent"> <Android.suppP7.widget.rcyctiend AndroidRound: Android.support.v7.widget.rcyctiend " Android: Layout_Height = "Match_Parent" Android: id = "@+id/recyclerview"/> </com.liaoinstan.springview.widget.springview> </leinearlayout>
Classe principal da MainActivity
classe pública MainActivity estende a atividade {Private RecyclerView RecyclerView; Lista privada <String> list = new ArrayList <> (); Springview privado Springview; private linearlayoutmanager linearlayoutmanager; @ReQuirESAPI (api = build.version_codes.gingerbread) @Override Protected void onCreate (pacote savedInstancestate) {super.oCreate (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"); // Configurando o Layout Manager // new GridLayoutManager () Nine-Grid Layout Manager // new LinearLayoutManager () ListView LayoutManager // // new STAGEREDGRIDLAYOUTMANAGER () LayoutManager de fluxo // RecyclerVew.SetLayoutManager (New GriDlayoutManager (ThishTen), 5). // recyclerView.setLayoutManager (new STAGEREDGRIDLAYOUTMANAGER (3, linearlayout.vertical)); // RecyclerViewAdApter Adapter = new RecyclerViewAdapter (this, List); Adaptador multiadapter = novo multiadapter (this, list); linearlayoutManager = new linearlayoutManager (this, linearlayoutManager.vertical, false); RecyclerView.SetLayoutManager (LinearLayoutManager); recyclerView.setAdapter (adaptador); // // Adapter.setilistener (new RecyclerViewAdapter.Listener () {// @Override // public void OnClick (View, int position) {// Toast.MakeText (mainActivity.This, "" Position, Toast.Length_Short) .Show ();/} {// //} //}); RecyclerView.SetOnsCrollListener (new RecyclerView.onscrollListener () {@Override public void onScrollStatEChanged (RecyclerView RecyclerView, Int NewState) {super.onscrollStatechanged (RecyclerView, NewState); public void 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 Defaulttheader (isto)); springview.setFooter (new DefaultFooter (this)); springview.setListener (new springview.onfreshListener () {@Override public void onRefresh () {// download springview.onfinishfreshandload ();} @Override public void onloadmore () {// springview.onfinishfreshAndLoad ();};); // Adapter.NotifyDataSetchanged (); }} Puxe o layout para baixo
<? xml versão = "1.0" coding = "utf-8"?> <linearLayout xmlns: Android = "http://schemas.android.com/apk/res/android" Android: Layout_width = "Match_Parent" Android: Layout_Height = "WRAVE" WRRAVE "WRRAVE" WRRATHT_HATT_HAVE "Android:" Android "Android" Android: "WRAPT_WRAT_TROID:" Android "Android:" WRAPS = "Match_Parent" Android: Layout_Height = "WRAVER" WRAT_WIDTHTHTH_PAREN "Android: Layout_Height =" Android: Orientation = "Vertical"> <ImageView Android: src = "@mipmap/ic_launcher" Android: scaletype = "Centercrop" Android: id = "@+id/item_simageView" Android: Layout_width = "Match_Parent" Android: Layout_Height "
Atualize o layout
<? xml versão = "1.0" coding = "utf-8"?> <linearLayout xmlns: Android = "http://schemas.android.com/apk/res/android" Android: Layout_width = "Match_Parent" Android: Layout_Height = "WRAVE" WRRAVE "WRRAVE" WRRATHT_HATT_HAVE "Android:" Android "Android" Android: "WRAPT_WRAT_TROID:" Android "Android:" WRAPS = "Match_Parent" Android: Layout_Height = "WRAVER" WRAT_WIDTHTHTH_PAREN "Android: Layout_Height =" Android: Orientation = "Vertical"> <ImageView Android: src = "@mipmap/ic_launcher" Android: id = "@+id/item_simageView" Android: Layout_width = "Match_parent" Android: Layout_Height = "100dp"/> <TextView Android: Android: layout_width = "match_parent" Android: layout_height = "wrap_content" Android: id = "@+id/item_textView"/> </leinearLayout>
Adaptador multiadapador
classe pública multiadapter estende RecyclerView.Adapter <RecyclerView.ViewHolder> {Contexto privado; Lista privada <String> Lista; public multiadapter (contexto de contexto, lista <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, pai, false); retornar novo fviewholder (visualização); } else {View View = layoutInflater.from (context) .inflate (r.layout.layout_sitem, pai, false); retornar novo swiewholder (visualização); }} @Override public int getItemViewType (int position) {posição de retorno % 2; } @Override public void onBindViewHolder (RecyclerView.ViewHolder titular, int POSITION) {if (Instância do titular do friewHolder) {fviewHolder fviewHolder = (fviewHolder) titular; fviewHolder.itemStextView.Settext (Position+""); Glide.with (context) .load (list.get (posição)). // imageLoader.getInstance (). DisplayImage (list.get (posição), fviewholder.itemsImageView); } else {sviewholder sviewholder = (stiewholder) titular; Glide.with (context) .load (list.get (posição)). // imageLoader.getInstance (). DisplayImage (list.get (posição), sViewHolder.itemSimageView); }} @Override public int getItemCount () {return list.size (); } classe estática fviewholder estende RecyclerView.ViewHolder {@BindView (r.id.item_simageView) ImageView ItensImageView; @BindView (R.id.Item_TextView) TEXTVIEW ITEMSTEXTVIEW; FviewHolder (View View) {Super (View); Butterknife.bind (isto, visualização); }} classe SViewHolder estende RecyclerView.ViewHolder {@BindView (r.id.item_simageView) ImageView ItensImageView; SViewHolder (View View) {Super (View); Butterknife.bind (isto, visualização); }}}O exposto acima é todo o conteúdo deste artigo. Espero que seja útil para o aprendizado de todos e espero que todos apoiem mais o wulin.com.