安卓笔记侠

专注安卓开发

导航

SwipeRefreshLayout嵌套ScrollView实现下拉刷新

API doc:http://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html
首先须把你的support library的版本升级到19.1或更新

效果:

使用超级简单!

在layout中添加SwipeRefreshLayout

 1 <android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
 2     android:id="@+id/swipe_container"
 3     android:layout_width="match_parent"
 4     android:layout_height="match_parent" >
 5 
 6     <ScrollView
 7         android:layout_width="match_parent"
 8         android:layout_height="wrap_content" >
 9 
10         <TextView
11             android:id="@+id/textView1"
12             android:layout_width="match_parent"
13             android:layout_height="wrap_content"
14             android:gravity="center"
15             android:paddingTop="10dp"
16             android:text="@string/swipe_to_refresh"
17             android:textSize="20sp"
18             android:textStyle="bold" />
19     </ScrollView>
20 
21 </android.support.v4.widget.SwipeRefreshLayout>

在Activity中使用:

 1 tv = (TextView)findViewById(R.id.textView1);
 2         swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipe_container);
 3         //设置刷新时动画的颜色,可以设置4个
 4         swipeRefreshLayout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_red_light, android.R.color.holo_orange_light, android.R.color.holo_green_light);
 5         swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() {
 6             
 7             @Override
 8             public void onRefresh() {
 9                 tv.setText("正在刷新");
10                 // TODO Auto-generated method stub
11                 new Handler().postDelayed(new Runnable() {
12                     
13                     @Override
14                     public void run() {
15                         // TODO Auto-generated method stub
16                         tv.setText("刷新完成");
17                         swipeRefreshLayout.setRefreshing(false);
18                     }
19                 }, 6000);
20             }
21         });

PS:setColorScheme()已经弃用,使用setColorSchemeResources()来设置颜色。

posted on 2017-03-17 23:00  安卓笔记侠  阅读(660)  评论(0编辑  收藏  举报