Android support v4包提供的下拉刷新控件(SwipeRefreshLayout)的使用

来源:互联网 发布:牛肉干市场调查数据 编辑:程序博客网 时间:2024/06/05 00:25
如果只需要 下拉刷新功能 不需要上拉加载,我们没有必要第三方的什么 XlistView、 PullToRefreshLayout什么的,用SwipeRefreshLayout就够用了,一般我们把 PullToRefreshLayout做为根View 里面包着 需要刷新的控件就可以了,如listView ……什么的 ,注意它里面 只能有一个子View 下面是一个简单的例子。

布局:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent" >    <android.support.v4.widget.SwipeRefreshLayout        android:id="@+id/srl"        android:layout_width="match_parent"        android:layout_height="fill_parent" >        <ListView            android:id="@+id/lv"            android:layout_width="wrap_content"            android:layout_height="wrap_content" >        </ListView>    </android.support.v4.widget.SwipeRefreshLayout></RelativeLayout>

Activity:

public class MainActivity extends Activity implements OnRefreshListener {    private SwipeRefreshLayout swipRefresh;    private List<String> datalist;    private ArrayAdapter<String> adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView listView = (ListView) findViewById(R.id.lv);        swipRefresh = (SwipeRefreshLayout) findViewById(R.id.srl); //下拉刷新控件  里面放一个子View        swipRefresh.setColorScheme(android.R.color.holo_blue_dark, android.R.color.holo_blue_light,                android.R.color.holo_green_light, android.R.color.holo_green_light);        swipRefresh.setOnRefreshListener(this);        datalist= new ArrayList<String>();        for (int i = 0; i < 10; i++) {            datalist.add("数据"+i);        }        adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, datalist);        listView.setAdapter(adapter);        //先添加数据      }    @Override    public void onRefresh() {        swipRefresh.setRefreshing(true);        new Handler().postDelayed(new Runnable() {            @Override            public void run() {                // TODO Auto-generated method stub                for(int  i = 0;i<5;i++) {                    datalist.add("我是新数据"+i); //集合反传 新数据在前面                }                Collections.reverse(datalist);                if(adapter!=null) {                    adapter.notifyDataSetChanged();                }                swipRefresh.setRefreshing(false); //关闭刷新动画            }        }, 2000);    }}
0 0
原创粉丝点击