ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、视频、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
#### 布局 ~~~ <?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/swipeLayout" > <TextView android:id="@+id/tv_show" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:text="用于显示文本内容" /> </android.support.v4.widget.SwipeRefreshLayout> ~~~ #### 不给控件赋值demo ~~~ SwipeRefreshLayout swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipeLayout); // 旋转圈的颜色,参数可以是多个 swipeRefreshLayout.setColorSchemeColors(getResources().getColor(android.R.color.holo_orange_light)); // 等待圈的大小,两个数值:LARGE(大的)和 DEFAULT(默认大小) swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE); // 设置等待效果的背景颜色 swipeRefreshLayout.setProgressBackgroundColorSchemeResource(android.R.color.holo_red_dark); // 手指在屏幕下拉多少触发。默认值是64 swipeRefreshLayout.setDistanceToTriggerSync(50); // 下拉刷新完成后触发事件 swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { swipeRefreshLayout.setRefreshing(false); Toast.makeText(MainActivity.this, "这里可以处理刷新效果之后的逻辑", Toast.LENGTH_SHORT).show(); } }); ~~~ #### 给控件赋值demo 以上代码已经实现了刷新效果,但是如果刷新之后操作一个view,直接在onRefresh中会抛出异常,所以需要使用hander。 ~~~ private SwipeRefreshLayout swipeRefreshLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); swipeRefreshLayout = (SwipeRefreshLayout)findViewById(R.id.swipeLayout); // 旋转圈的颜色,参数可以是多个 swipeRefreshLayout.setColorSchemeColors(getResources().getColor(android.R.color.holo_orange_light)); // 等待圈的大小,两个数值:LARGE(大的)和 DEFAULT(默认大小) swipeRefreshLayout.setSize(SwipeRefreshLayout.LARGE); // 设置等待效果的背景颜色 swipeRefreshLayout.setProgressBackgroundColorSchemeResource(android.R.color.holo_red_dark); // 手指在屏幕下拉多少触发。默认值是64 swipeRefreshLayout.setDistanceToTriggerSync(50); // 下拉刷新完成后触发事件 swipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { new Thread(new Runnable() { @Override public void run() { mHandler.sendEmptyMessage(1); } }).start(); } }); } private Handler mHandler = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); switch (msg.what) { case 1: Toast.makeText(MainActivity.this, "这里可以处理刷新效果之后的逻辑", Toast.LENGTH_SHORT).show(); // 等操作完成之后关闭等待圈效果 swipeRefreshLayout.setRefreshing(false); break; default: break; } } }; ~~~