Android SwipeRefreshLayout 下拉刷新组件的使用
Pin Young Lv9

在极客学院的Android学习中,发现其下拉刷新组件用的是比较老的组件,现在Google官方出的是SwipeRefreshLayout,借此机会学习了一下。先附上图:

image

xml资源文件

1
2
3
4
5
6
7
8
9
10
11
12
<android.support.v4.widget.SwipeRefreshLayout
android:id="@+id/swipeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_gravity="center_horizontal" />

</android.support.v4.widget.SwipeRefreshLayout>

只需要添加一个SwipeRefreshLayout, 其中的数据列表项我使用了ListView来显示数据

相应代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/*获取ListView*/
listView = (ListView) findViewById(R.id.listView);
/*为listView 添加适配器*/
listView.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, getData()));

/*获取SwipeRefreshLayout*/
swipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipeLayout);
/*设置下拉刷新监听器*/
swipeLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
@Override
public void onRefresh() {
swipeLayout.postDelayed(new Runnable() {
@Override
public void run() {
swipeLayout.setRefreshing(false);
}
}, 3000); //延时3秒
}
});
}

/*预先定义listView显示的列表项*/
private List<String> getData() {
List<String> data = new ArrayList<String>();
for (int i = 0; i < 20; i++) {
data.add("Item list " + (i + 1));
}
return data;
}

是不是非常easy呢 ? 

后记

在创建ListView过程中, 我使用的是ArrayAdapter适配器, 还有 :

  • SimpleAdapter
  • SimpleCursorAdapter
  • BaseAdapter

都还不太了解, 下面准备详细学下ListView的各种适配器。

相应的详细代码我放在了我的github上,这是链接