SwipeRefreshLayout下拉重新整理,swiperefreshlayout
1.SwipeRefreshLayout是Google在support v4 19.1版本的library更新的一個下拉重新整理組件,實現重新整理效果更方便。
弊端:只有下拉
//設定重新整理控制項圈圈的顏色swipe_refresh_layout.setColorSchemeResources(android.R.color.holo_blue_light, android.R.color.holo_orange_light, android.R.color.holo_red_light, android.R.color.holo_green_light);//設定重新整理控制項背景色swipe_refresh_layout.setProgressBackgroundColorSchemeColor(getResources().getColor(android.R.color.white));//設定滑動距離swipe_refresh_layout.setDistanceToTriggerSync(100);//設定大小模式swipe_refresh_layout.setSize(SwipeRefreshLayout.DEFAULT);//設定下拉重新整理控制項狀態隱藏swipe_refresh_layout.setRefreshing(false);
2.在xml檔案中引用android.support.v4.widget.SwipeRefreshLayout控制項,在裡面可以放置任何一個控制項,例如ListView,gridview等。
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" > <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/id_swipe_ly" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/id_listview" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout>
3.Java代碼
public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {private SwipeRefreshLayout swipeLayout;private ListView listView;private ListViewAdapter adapter;private List<ItemInfo> infoList;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);swipeLayout = (SwipeRefreshLayout) this.findViewById(R.id.swipe_refresh);swipeLayout.setOnRefreshListener(this);// 頂部重新整理的樣式swipeLayout.setColorScheme(android.R.color.holo_red_light, android.R.color.holo_green_light,android.R.color.holo_blue_bright, android.R.color.holo_orange_light);infoList = new ArrayList<ItemInfo>();ItemInfo info = new ItemInfo();info.setName("coin");infoList.add(info);listView = (ListView) this.findViewById(R.id.listview);adapter = new ListViewAdapter(this, infoList);listView.setAdapter(adapter);}public void onRefresh() {new Handler().postDelayed(new Runnable() {public void run() {swipeLayout.setRefreshing(false);ItemInfo info = new ItemInfo();info.setName("coin-refresh");infoList.add(info);adapter.notifyDataSetChanged();}}, 500);}}