XRecyclerView和万能baseeAdapter 实现上拉下拉刷新列表
来源:互联网 发布:应用文理学院网络学堂 编辑:程序博客网 时间:2024/04/30 19:55
XRecyclerView : https://github.com/jianghejie/XRecyclerView
万能baseAdaper: https://github.com/hongyangAndroid/baseAdapter
添加依赖:
compile 'com.zhy:base-rvadapter:3.0.3'compile 'com.zhy:base-adapter:3.0.3'compile 'com.jcodecraeer:xrecyclerview:1.2.7'activity_recycler1.xml:
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <com.jcodecraeer.xrecyclerview.XRecyclerView android:id="@+id/recyclerview1" android:layout_width="match_parent" android:layout_height="match_parent" /></LinearLayout>
item_comment.xml:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/shape_white"> <ImageView android:id="@+id/user_logo" android:layout_width="40dp" android:layout_height="40dp" android:scaleType="centerInside" android:src="@mipmap/girl" /> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@id/user_logo" android:layout_alignTop="@id/user_logo" android:layout_toRightOf="@id/user_logo"> <TextView android:id="@+id/user_name" style="@style/TextTheme" android:layout_marginLeft="8dip" android:text="岁月抚伤" /> <TextView android:id="@+id/item_public_time" style="@style/TextTheme" android:layout_below="@id/user_name" android:layout_marginLeft="8dip" android:text="12点" android:textColor="#888888" android:textSize="15dp" /> </RelativeLayout> <TextView android:id="@+id/item_index_comment" android:layout_width="50dp" android:layout_height="50dp" android:layout_alignBottom="@id/user_logo" android:layout_alignParentRight="true" android:layout_alignTop="@id/user_logo" android:scaleType="centerInside" android:text="1楼" /> <TextView android:id="@+id/content_text" style="@style/TextTheme" android:layout_below="@id/user_logo" android:layout_margin="4dp" android:text="十年之前,我不认识你 你不属于我,我们还是一样,陪在一个陌生人左右,走过渐渐熟悉的街头;十年之后,我们是朋友, 还可以问候,只是那种温柔,再也找不到拥抱的理由,情人最后难免沦为朋友。" /> <TextView android:id="@+id/item_action_comment" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_below="@id/content_text" android:layout_marginBottom="4dip" android:layout_marginLeft="8dip" android:layout_marginRight="8dip" android:layout_marginTop="4dip" android:drawableLeft="@mipmap/ic_action_edit" android:gravity="center" android:text="回复" /> <TextView android:id="@+id/item_action_love" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/content_text" android:layout_marginBottom="4dip" android:layout_marginLeft="8dip" android:layout_marginRight="8dip" android:layout_marginTop="4dip" android:layout_toLeftOf="@id/item_action_comment" android:drawableLeft="@mipmap/ic_action_love" android:gravity="center" android:text="985赞" android:textColor="#888888" /></RelativeLayout>
Comment.java:
package com.example.superrecyclerviewtest;/** * Created by Keen on 11/14/2016. */public class Comment { private String userName; private String contentText; private String indexComment; private String loveCount; public String getUserName() { return userName; } public void setUserName(String userName) { this.userName = userName; } public String getContentText() { return contentText; } public void setContentText(String contentText) { this.contentText = contentText; } public String getIndexComment() { return indexComment; } public void setIndexComment(String indexComment) { this.indexComment = indexComment; } public String getLoveCount() { return loveCount; } public void setLoveCount(String loveCount) { this.loveCount = loveCount; }}
testrecycleradapter.java:
package adapter;import android.content.Context;import com.example.superrecyclerviewtest.Comment;import com.example.superrecyclerviewtest.R;import com.zhy.adapter.recyclerview.CommonAdapter;import com.zhy.adapter.recyclerview.base.ViewHolder;import java.util.List;/** * Created by Keen on 11/13/2016. */public class TestRecyclerAdapter extends CommonAdapter<Comment> { public TestRecyclerAdapter(Context context, int layoutId, List<Comment> datas) { super(context, layoutId, datas); } @Override protected void convert(ViewHolder holder, Comment s, int position) { holder.setText(R.id.content_text, s.getContentText()); holder.setText(R.id.item_index_comment, s.getIndexComment()); holder.setText(R.id.item_action_love, s.getLoveCount()); holder.setText(R.id.user_name, s.getUserName()); }}
MainActivity.java:
package com.example.superrecyclerviewtest;import android.support.annotation.NonNull;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.os.Handler;import android.support.v7.widget.LinearLayoutManager;import android.support.v7.widget.RecyclerView;import android.util.Log;import android.view.View;import android.widget.Toast;import com.jcodecraeer.xrecyclerview.XRecyclerView;import com.zhy.adapter.recyclerview.CommonAdapter;import java.util.ArrayList;import java.util.Collection;import java.util.Iterator;import java.util.List;import java.util.ListIterator;import adapter.DividerItemDecoration;import adapter.TestRecyclerAdapter;public class MainActivity extends AppCompatActivity { private XRecyclerView mRecyclerView; private TestRecyclerAdapter adapter; private List<Comment> mDatas; private int refreshTime = 0; private int times = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_recyclerview1); mRecyclerView = (XRecyclerView)findViewById(R.id.recyclerview1); initDatas(); LinearLayoutManager layoutManager = new LinearLayoutManager(MainActivity.this); layoutManager.setOrientation(LinearLayoutManager.VERTICAL); mRecyclerView.setLayoutManager(layoutManager); mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST)); adapter = new TestRecyclerAdapter(MainActivity.this, R.layout.item_coment, mDatas); mRecyclerView.setAdapter(adapter); adapter.setOnItemClickListener(new CommonAdapter.OnItemClickListener() { @Override public void onItemClick(View view, RecyclerView.ViewHolder holder, int position) { Toast.makeText(MainActivity.this, "pos = " + position, Toast.LENGTH_SHORT).show(); //adapter.notifyItemRemoved(position); } @Override public boolean onItemLongClick(View view, RecyclerView.ViewHolder holder, int position) { return false; } }); mRecyclerView.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { //refresh data here refreshTime ++; times = 0; new Handler().postDelayed(new Runnable(){ public void run() { mDatas.clear(); for(int i = 0; i < 15 ;i++){ Comment comment = new Comment(); comment.setContentText("这是刷新内容的测试文本"); comment.setUserName("刷新测试"); comment.setLoveCount(Integer.toString(i*10) + "赞"); comment.setIndexComment(Integer.toString(i) + "楼"); Log.w("COMMENT", comment.getIndexComment()); mDatas.add(comment); } adapter.notifyDataSetChanged(); mRecyclerView.refreshComplete(); } }, 1000); //refresh data here } @Override public void onLoadMore() { // load more data here new Handler().postDelayed(new Runnable(){ public void run() { int size = mDatas.size(); for(int i = 0; i < 15 ;i++){ Comment comment = new Comment(); comment.setContentText("这是自动加载的内容测试文本"); comment.setUserName("自动加载"); comment.setLoveCount(Integer.toString(size + i + 1) + "赞"); comment.setIndexComment(Integer.toString(size + i + 1) + "楼"); Log.w("COMMENT", comment.getIndexComment()); mDatas.add(comment); } mRecyclerView.loadMoreComplete(); adapter.notifyDataSetChanged(); } }, 1000); } }); } private void initDatas(){ mDatas = new ArrayList<Comment>(); for (int i = 1; i <= 10; i++){ Comment comment = new Comment(); comment.setContentText("十年之前,我不认识你 你不属于我,我们还是一样,陪在一个陌生人左右,走过渐渐熟悉的街头;十年之后,我们是朋友, 还可以问候,只是那种温柔,再也找不到拥抱的理由,情人最后难免沦为朋友。"); comment.setUserName("十年之恋"); comment.setIndexComment(Integer.toString(i) + "楼"); Log.w("COMMENT", comment.getIndexComment()); comment.setLoveCount(Integer.toString(i*10) + "赞"); mDatas.add(comment); } }}
效果如下:
2 0
- XRecyclerView和万能baseeAdapter 实现上拉下拉刷新列表
- XRecyclerView实现上拉下拉
- XRecyclerView上拉下拉
- XRecyclerView 实现下拉刷新和上拉加载更多
- xRecyclerView简单实现下拉刷新和上拉加载
- xRecyclerView简单实现下拉刷新和上拉加载
- XRecyclerView下拉刷新和上拉加载
- SwipeRefreshLayout实现上拉下拉刷新
- html5上拉下拉刷新分页实现
- PullToRefresh的实现上拉下拉刷新
- XRecyclerView的上拉下拉加载数据
- RecyclerView列表九宫格瀑布流,多条目,SpringView实现上拉下拉刷新
- ListView上拉下拉刷新
- UITableView上拉下拉刷新
- UITableableview上拉下拉刷新
- 上拉下拉刷新XListView
- 上拉下拉刷新(1)
- 上拉下拉刷新数据
- java财务报表
- 2753: [SCOI2012]滑雪与时间胶囊
- call()和apply()的区别
- Could not obtain transaction-synchronized Session for current thread
- Kafka源码阅读 —— KafkaController(3)
- XRecyclerView和万能baseeAdapter 实现上拉下拉刷新列表
- windows下docker安装tensorflow利用Jupyter编程
- 破解实验室刷卡系统
- CentOS 安装高版本git
- Kafka源码阅读 —— KafkaController(4)
- 数据结构(三)——单链表的整表创建与删除
- JS一些代码笔记
- 微信开发学习:点歌台
- android中MVP或者说mvp模式的使用及思想分解,mvp和mvc的区别