Android控件下拉刷新:SwipeRefreshLayout
Posted phlsheji
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android控件下拉刷新:SwipeRefreshLayout相关的知识,希望对你有一定的参考价值。
须要注意的是SwipeRefreshLayout以下仅仅能够有一个直接子节点。
布局文件例如以下。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" tools:ignore="MergeRootFrame" > <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_container" android:layout_width="match_parent" android:layout_height="match_parent" > <ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </android.support.v4.widget.SwipeRefreshLayout> </FrameLayout>
主程序例如以下:
package com.francis.swiperefreshlayouttest; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.view.Menu; import android.view.MenuItem; import android.support.v4.widget.SwipeRefreshLayout; import android.widget.ArrayAdapter; import android.widget.ListView; // 布局文件下。<android.support.v4.widget.SwipeRefreshLayout> 仅仅能有一个直接的子类 // // 主要方法 // setOnRefreshListener(OnRefreshListener): 为布局加入一个Listener // setRefreshing(boolean): 显示或隐藏刷新进度条 // isRefreshing(): 检查是否处于刷新状态 // setColorSchemeResource(): 设置进度条的颜色主题。最多能设置四种 public class MyActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener{ private SwipeRefreshLayout mSwipeLayout; private ListView mListView; private ArrayAdapter<String> mArrayAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); String[] strings = new String[] {"a","b","c","d"}; mArrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,strings); mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container); mSwipeLayout.setOnRefreshListener(this); //载入颜色是循环播放的。仅仅要没有完毕刷新就会一直循环,color1>color2>color3>color4 mSwipeLayout.setColorSchemeResources( android.R.color.holo_blue_bright, android.R.color.holo_green_light, android.R.color.holo_orange_light, android.R.color.holo_red_light); mListView = (ListView)findViewById(R.id.list); mListView.setAdapter(mArrayAdapter); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.my, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); if (id == R.id.action_grid_view) { startActivity(new Intent(MyActivity.this,GridViewTest.class)); } return super.onOptionsItemSelected(item); } @Override public void onRefresh() { new Handler().postDelayed(new Runnable() { @Override public void run() { // 停止刷新 mSwipeLayout.setRefreshing(false); } }, 3000); } }
以上是关于Android控件下拉刷新:SwipeRefreshLayout的主要内容,如果未能解决你的问题,请参考以下文章
Android基础控件——SwipeRefreshLayout最简单的下拉刷新
Android SwipeRefreshLayout下拉刷新控件源码简单分析
Android下拉刷新控件--PullToRefresh的简单使用