在这里就不具体的介绍RecycleView的用法和简介了,如果想了解更多关于RecycleView的更多介绍,可以看下我的另一篇blog,RecycleView的简单介绍:
http://blog.csdn.net/wuyinlei/article/details/50593747
在这里就简单的介绍些SwipeRefreshLayout吧:
SwipeRefreshLayout是Google官方更新的一个widget,可以实现下拉刷新的效果,该控件集成子ViewGroup在support-v4兼容包下,不过我们想要使用,必须support library的版本在19.1以上
基本使用方法:
- 1、setOnRefreshListener(OnRefreshListener):添加下拉刷新监听器
- 2、setRefreshing(boolean):显示或者隐藏刷新进度条
- 3、isRefreshing():检查是否处于刷新状态
- 4、setColorSchemeResources():设置进度条的颜色主题(最多四个)
下面就来实例代码吧,用的有下拉刷新哦:
package com.example.ruolan.recycleview;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.DefaultItemAnimator;
import android.support.v7.widget.GridLayoutManager;
import android.support.v7.widget.LinearLayoutManager;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private RecyclerView mRecyclerView;
private SwipeRefreshLayout mLayout;
private List<String> datas = new ArrayList<>();
private MyAdapter mAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLayout = (SwipeRefreshLayout) this.findViewById(R.id.refreshLayout);
mRecyclerView = (RecyclerView) this.findViewById(R.id.recyclerView);
mAdapter = new MyAdapter(datas);
mRecyclerView.setAdapter(mAdapter);
//下面可以自己设置排版方式
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
//mRecyclerView.setLayoutManager(new GridLayoutManager(this,4));
//设置分割线
mRecyclerView.addItemDecoration(new DividerItemDecoration(this, DividerItemDecoration.VERTICAL_LIST));
//下面一行如果不写也是会自动调用的
mRecyclerView.setItemAnimator(new DefaultItemAnimator());
mAdapter.setOnItemListener(new MyAdapter.OnItemClickListener() {
@Override
public void onClick(View v, int position, String city) {
Toast.makeText(MainActivity.this, "你好", Toast.LENGTH_SHORT).show();
}
});
//RecycleView的事件监听
//初始化数据
initDatas();
initRefreshLayout();
}
private void initRefreshLayout() {
//设置刷新的颜色
mLayout.setColorSchemeResources(
android.R.color.background_dark,
android.R.color.holo_red_dark,
android.R.color.holo_green_dark,
android.R.color.holo_orange_dark);
//拖动多长的时候开始刷新
mLayout.setDistanceToTriggerSync(100);
mLayout.setProgressBackgroundColorSchemeColor(getResources().getColor(R.color.item_press));
//设置大小
mLayout.setSize(SwipeRefreshLayout.LARGE);
//刷新监听器
mLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
for (int i = 0; i <= 10; i++){
mAdapter.addData(i,"new City " + i);
}
//通知刷新
mAdapter.notifyItemRangeChanged(0,10);
mRecyclerView.scrollToPosition(5);
//完成