效果图
gradle依赖库
implementation 'com.android.support:recyclerview-v7:26.1.0'
implementation 'com.squareup.okhttp3:okhttp:3.12.0'
implementation files('libs/gson-2.3.1.jar')
implementation files('libs/universal-image-loader-1.9.5.jar')
implementation ('com.jcodecraeer:xrecyclerview:1.5.9'){
exclude group: 'com.android.support'
}
implementation "com.android.support:design:26.1.0"
使用xrecycleview如果没有design依赖库,切记一定要写,不然项目直接报错,找不到该类
布局
activity_main.xml
<EditText
android:hint="搜索"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
<com.jcodecraeer.xrecyclerview.XRecyclerView
android:id="@+id/recy"
android:layout_width="match_parent"
android:layout_height="match_parent"> </com.jcodecraeer.xrecyclerview.XRecyclerView>
条目布局自己看心情布置
mvp有点多,我就不写了,我的那个切换布局里用的方法和这个一样,可以参考,我就只简单的写下主页面吧
**
MainActivity
**
public class MainActivity extends AppCompatActivity implements MainView {
/*private RecyclerView recyclerView;*/
private XRecyclerView recyclerView;
private MainAdapter adapter;
private MainPresenter mainPresenter=new MainPresenter(this);
private int page=1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
mainPresenter.showGoods(page);
//上拉加载下拉刷新
initRefresh();
}
private void initRefresh() {
recyclerView.setLoadingListener(new XRecyclerView.LoadingListener() {
@Override
public void onRefresh() {
//更新UI
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
page=1;
mainPresenter.showGoods(page);
recyclerView.refreshComplete();
Toast.makeText(MainActivity.this, "刷新完成", Toast.LENGTH_SHORT).show();
}
},2000);
}
@Override
public void onLoadMore() {
//更新UI
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
page++;
mainPresenter.showGoods(page);
recyclerView.loadMoreComplete();
Toast.makeText(MainActivity.this, "加载完成", Toast.LENGTH_SHORT).show();
}
},2000);
}
});
}
private void initView() {
recyclerView = findViewById(R.id.recy);
}
@Override
public Context context() {
return null;
}
@Override
public void ShowSuccess(Goods goods) {
List<Goods.DataBean> list = goods.getData();
LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
linearLayoutManager.setOrientation(LinearLayoutManager.VERTICAL);
recyclerView.setLayoutManager(linearLayoutManager);
adapter = new MainAdapter(list);
recyclerView.setAdapter(adapter);
}
@Override
public void ShowError(String error) {
}
}
就这几行代码就搞定了