Material Design之SwipeToRefresh下拉刷新
来源:互联网 发布:mac系统如何进入终端 编辑:程序博客网 时间:2024/05/20 20:48
转载请标明出处:http://blog.csdn.net/wu_wxc/article/details/47340257
本文出自【吴孝城的CSDN博客】
每个SwipeToRefresh里面只能放一个子View,现在用SwipeToRefresh给listview实现下拉刷新
布局
activity_main.xml
<?xml version="1.0" encoding="utf-8"?><android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/id_refresh" > <ListView android:id="@+id/id_list" android:layout_width="match_parent" android:layout_height="wrap_content"/></android.support.v4.widget.SwipeRefreshLayout>
还要配置几个颜色,在下拉刷新时圆形滚动条的颜色变化
color.xml
<?xml version="1.0" encoding="utf-8"?><resources> <color name="color_1">#B6DB49</color> <color name="color_2">#99CC00</color> <color name="color_3">#8ABD00</color> <color name="color_4">#7CAF00</color> <color name="swipe_background_color">#ccc</color></resources>然后就是主程序了
MainActivity.java
package cn.wuxiaocheng.swipetorefresh;import java.util.ArrayList;import java.util.List;import android.annotation.SuppressLint;import android.app.Activity;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.support.v4.widget.SwipeRefreshLayout;import android.support.v4.widget.SwipeRefreshLayout.OnRefreshListener;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity { private SwipeRefreshLayout swipeRefreshLayout; private ListView mlist; private List<String> listmsg; private ArrayAdapter<String> adapter; private final int SUCCESS = 1; @SuppressLint("ResourceAsColor") @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mlist = (ListView)findViewById(R.id.id_list); listmsg = new ArrayList<String>(); adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, listmsg); mlist.setAdapter(adapter); //找到下拉控件 swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.id_refresh); //设置下拉刷新过程中进度动画四种颜色变化 swipeRefreshLayout.setColorSchemeResources(R.color.color_1, R.color.color_2, R.color.color_3, R.color.color_4); //进度圈大小,只有两个值,DEFAULT、LARGE swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE); //进度圈的背景颜色 swipeRefreshLayout.setProgressBackgroundColor(R.color.swipe_background_color); /*进度圈位置 swipeRefreshLayout.setPadding(20, 20, 20, 20); swipeRefreshLayout.setProgressViewOffset(true, 100, 200); swipeRefreshLayout.setDistanceToTriggerSync(50);*/ //实现下拉滚动效果,100是下拉的位置 swipeRefreshLayout.setProgressViewEndTarget(true, 100); //手势滑动监听 swipeRefreshLayout.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh() { //new一个县城实现刷新,下面内容改为实现的功能。例如网页获取数据的重新获取一遍网页你内容 new Thread(new Runnable() { @Override public void run() { listmsg.clear(); //清空数据 //刷新添加的内容 for(int i=1;i<20;i++){ listmsg.add("刷新得到的内容"+i); } try { Thread.sleep(5000); } catch (InterruptedException e) { e.printStackTrace(); } //刷新成功 mHandler.sendEmptyMessage(SUCCESS); } }).start(); } }); } //new一个处理程序,接收传过来的数据并做处理 private Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { //返回成功 case 1: swipeRefreshLayout.setRefreshing(false); //关闭刷新 //将刷新得到的数据添加到适配器里 adapter.notifyDataSetChanged(); //swipeRefreshLayout.setEnabled(false); break; default: break; } } };}
效果如下图
1 0
- Material Design之SwipeToRefresh下拉刷新
- Material Design风格的下拉刷新
- android material design之Viewpager嵌套Viewpager,recycleview下拉刷新上拉加载
- 下拉刷新上拉加载控件+Material Design使用
- Material Design之下拉刷新
- Material design之Material Theme
- Material Design最佳体验(2): 使用RecyclerView、CardView、SwipeRefreshLayout实现下拉刷新列表
- Material Design 之 ToolBar
- Material Design之Snackbar
- Material Design之TextInputLayout
- Material Design之Toolbar
- Material Design 之 Theme
- Material Design之Snackbar
- Material Design之TextInputLayout
- Material Design之SwipeRefreshLayout
- Material Design之FloatingActionBar
- Material Design之NavigationView
- Material Design之TabLayout
- 线性回归、逻辑回归等问题对比分析总结
- 多维数组和指针操作
- tree型的json数据按照json的某个字段对子节点进行排序
- 关于动态分布函数
- MyEclipse 10.7汉化教程
- Material Design之SwipeToRefresh下拉刷新
- .net mvc
- HTML5 中的 Web SQL Database 来构建应用程序
- Java实现查找树(BST,AVL,BTree,Trie)
- Linux 常用命令的使用
- HTTP跨域调用-传入URL就直接返回回来数据
- Struts2中action访问路径配置
- 上传iTunes的Bug
- mac上配置环境变量