作者:程序员小冰,GitHub主页:https://github.com/QQ986945193
新浪微博:http://weibo.com/mcxiaobing
首先给大家看一下我们今天这个最终实现的效果图:
好了,简单的介绍一下,SwipeRefreshLayout是android系统自带的一个控件,
可以看到现在App好多刷新都有这样类似的效果。其实它的使用还是比较
简单的,就是在我们的listview的控件上面加上就行了,然后再在java代码
中设置它的颜色,以及监听它的刷新事件。我这里随便用了一个list集合。
还有刷新结束后没有操作什么内容,但是实际项目中大家按例套进去即可。
首先SwipeRefreshLayout是V4包下的,我们xml引用它的时候可以是这样:
<?xml version="1.0" encoding="utf-8"?>
<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/swipe_container"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:id="@+id/listview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="16dp" />
</android.support.v4.widget.SwipeRefreshLayout>
</RelativeLayout>
然后,我们再在java代码中进行监听事件,以及设置刷新颜色:
package davidswiperefreshlayout.qq986945193.davidswiperefreshlayout;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.support.v4.widget.SwipeRefreshLayout;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import java.util.ArrayList;
/**
* @author :程序员小冰
* @新浪微博 :http://weibo.com/mcxiaobing
* @GitHub: https://github.com/QQ986945193
* @CSDN博客: http://blog.csdn.net/qq_21376985
* @码云OsChina :http://git.oschina.net/MCXIAOBING
*/
public class MainActivity extends Activity implements SwipeRefreshLayout.OnRefreshListener {
private SwipeRefreshLayout mSwipeLayout;
private ListView mListView;
private ArrayList<String> list = new ArrayList<String>();
private ArrayAdapter<String> adapter;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mListView = (ListView) findViewById(R.id.listview);
/**
* listview绑定adapter
*/
adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, getData());
mListView.setAdapter(adapter);
mSwipeLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_container);
mSwipeLayout.setOnRefreshListener(this);
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);
}
private ArrayList<String> getData() {
list.add("Hello world!");
list.add("CSDN:程序员小冰");
list.add("An Android Developer");
list.add("http://weibo.com/mcxiaobing");
list.add("http://git.oschina.net/MCXIAOBING");
list.add("https://github.com/QQ986945193");
list.add("An Android Developer");
list.add("http://weibo.com/mcxiaobing");
list.add("http://git.oschina.net/MCXIAOBING");
list.add("https://github.com/QQ986945193");
list.add("An Android Developer");
list.add("http://weibo.com/mcxiaobing");
list.add("http://git.oschina.net/MCXIAOBING");
list.add("https://github.com/QQ986945193");
return list;
}
public void onRefresh() {
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
mSwipeLayout.setRefreshing(false);
}
}, 3000);
}
}
好了,教程到此结束。如果此文章帮到了你,欢迎点赞。
源代码需要的可以去
(AndroidStudio版)github下载地址:
https://github.com/QQ986945193/DavidSwipeRefreshLayout
(AndroidStudio版)Git开源中国下载地址:
http://git.oschina.net/MCXIAOBING/DavidSwipeRefreshLayout
<script type="text/javascript">
$(function () {
$('pre.prettyprint code').each(function () {
var lines = $(this).text().split('\n').length;
var $numbering = $('<ul/>').addClass('pre-numbering').hide();
$(this).addClass('has-numbering').parent().append($numbering);
for (i = 1; i <= lines; i++) {
$numbering.append($('<li/>').text(i));
};
$numbering.fadeIn(1700);
});
});
</script>
分享到:
相关推荐
在Android开发中,`SwipeRefreshLayout` 是一个非常重要的组件,它是Android SDK中内置的一个控件,主要用于实现下拉刷新的功能。这个控件的设计目的是让用户在查看列表或网格内容时能够轻松地更新数据。下面我们将...
本示例“Android自定义上拉加载下拉刷新控件”提供了一个基于Android Studio的DEMO,帮助开发者理解并实现这一功能。 首先,我们来看下拉刷新(Pull-to-Refresh)功能。这是在用户滚动到列表顶部时,可以通过下拉...
**SwipeRefreshLayout:谷歌官方下拉刷新控件** `SwipeRefreshLayout`是谷歌在Android Support Library中的一个组件,主要用于实现下拉刷新的功能。这个控件在Android开发中被广泛应用,特别是在列表或者网格视图中...
本篇文章将深入探讨如何实现一个无痕过渡的下拉刷新控件,旨在提供一个更加流畅、自然的用户体验。 首先,我们来看一下现有市场上一些下拉刷新控件存在的普遍问题: 1. 当滑动控件处于初始位置时,用户向下拖动后...
在标题和描述中提到的"Android5.0SwipeRefreshLayout控件自带下拉刷新,自动刷新,scrollview",这实际上是在讨论如何在ScrollView中集成SwipeRefreshLayout以实现下拉刷新的效果。 SwipeRefreshLayout通常包含一个...
通过以上介绍,我们可以看到SwipeRefreshLayout为Android开发者带来了极大的便利,它简化了下拉刷新的实现,同时也提供了丰富的定制选项,使得每个应用的下拉刷新效果都能独具特色。在实际项目中,合理运用...
SwipeRefreshLayout结合RecyclerView实现下拉刷新和滑动加载更多 现在很多界面都是要求,下拉刷新,列表项目更多的时候,滑动加载更多,就像微信朋友圈一样,下拉时要刷新,向上滑动要实 现“加载更多”。 我也是...
本文将深入探讨如何在Android项目中集成并使用通用的下拉刷新控件。 首先,我们要介绍的是SwipeRefreshLayout,这是Android SDK提供的一种标准下拉刷新控件。SwipeRefreshLayout通常包含一个可以滚动的视图,如...
在Android开发中,`SwipeRefreshLayout`是Google提供的一款官方下拉刷新控件,它使得开发者可以轻松地在应用中添加下拉刷新的功能。这个控件主要用于承载一个子View,当用户下拉该子View时,会触发刷新动作,通常与`...
这个压缩包文件“安卓Android源码——下拉刷新控件(ListView好ScrollView版).rar”包含了实现这一功能的具体源代码,适用于ListView和ScrollView这两种常见的滚动视图。以下是对这个主题的详细讲解: 1. **下拉...
在Android开发中,`SwipeRefreshLayout`是谷歌官方提供的一个用于实现下拉刷新功能的控件。这个控件允许用户通过从顶部向下滑动来触发刷新操作,常见于新闻、社交媒体等应用的列表视图中。下面我们将深入探讨`...
本教程将基于提供的"andorid下拉刷新控件demo"进行深入讲解。 标题中的"android下拉刷新控件demo"指的是一个示例项目,它演示了如何在Android应用中实现下拉刷新功能。通常,这种控件被广泛应用于新闻、社交应用等...
SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下,但必须把你的support library的版本升级到19.1。 提到下拉刷新大家一定对ActionBarPullToRefresh比较熟悉,而如今google...
通过以上方式,我们可以将SwipeRefreshLayout从单纯的下拉刷新控件拓展为既能下拉刷新又能上拉加载的组件。这种设计提高了应用的可复用性和用户体验,使得用户在查看内容时更加便捷。在实际项目中,可以根据具体需求...
总结起来,创建一个仿iPhone下拉刷新的Android控件涉及多个步骤,包括选择或自定义合适的刷新控件,实现刷新和加载更多逻辑,以及处理动画效果和数据管理。通过以上的方法和技巧,你可以为Android应用带来更接近iOS...
这个"Android listView下拉刷新上拉刷新带阻尼效果"的源码Demo是几年前的一个示例,旨在帮助学生理解和实现Android应用中的下拉刷新和上拉加载更多功能,同时加入了阻尼效果,提升用户体验。阻尼效果是指在用户滑动...
在Android开发中,SwipeRefreshLayout是谷歌提供的一种交互控件,用于实现类似GMail应用中的下拉刷新效果。这种效果让用户可以轻松地更新内容,只需在列表顶部向下拉动即可触发刷新操作。下面我们将深入探讨...
6. **兼容性**:确保下拉刷新控件能在各种Android设备和版本上正常工作,可能需要考虑滑动阈值(touchSlop)的适配,以及其他与硬件相关的特性。 7. **性能优化**:在处理大量数据时,应考虑使用异步加载机制,避免...
SwipeRefreshLayout字面意思就是下拉刷新的布局,继承自ViewGroup,在support v4兼容包下 详情参考http://blog.csdn.net/jabony/article/details/22890793