ActionBar-PullToRefresh使用

写在前面:轮子不会造,还不会用轮子么?会用了就可以修,就可以优化了。

ActionBar-PullToRefresh是一个开源的下拉刷新控件,基于ActionBar的,在下拉时变化的是ActionBar,ActionBar的低端有横向滑动的进度条。

这里我记录一下我是如何使用它的。

源地址:https://github.com/chrisbanes/ActionBar-PullToRefresh

使用ActionBar-PullToRefresh,我们还需要一个开源控件,SmoothProgressBar,https://github.com/castorflex/SmoothProgressBar

第一步,将两个包down下来。

。。。。

第二步,将SmoothProgressBar导入。

我在百度搜索ActionBar-PullToRefresh的使用时,大家都说是要引用工程啊,gradle啊,我都看不懂啊,我只知道把源码直接复制进来,ok,开始吧。

你所需要的包的路径:SmoothProgressBar-master\library\src\main

下面有两个文件夹 java 和 res

res里面有两个value的文件夹,把里面的xml文件稍微改下名字,扔到你的项目里吧。

java里面有一个fr文件夹,我们所需要的代码在fr\castorflex\android\smoothprogressbar里面,直接把fr扔到你的项目里吧。

然后改一改R文件的引用,搞定。

第三步,将ActionBar-PullToRefresh导入。

ActionBar-PullToRefresh-master目录下面有4个文件,extras,gradle,library,samples,其中我用到了extras,library,借鉴了samples里面的代码

(1)libray里面,ActionBar-PullToRefresh-master\library\src\main

下面有两个文件夹 java 和 res

导入方法类似,资源文件改改文件名,复制到项目对应的位置,src文件改一下R文件的引用

(2)由于我一般要支持2.3的机型,所以需要使用ActionBarCompt,这时就需要导入extras里面的东西

ActionBar-PullToRefresh-master\extras\actionbarcompat\src\main

导入方法类似

所需要的东西都导入之后,可以看到src文件是这样子的

library里面应该是有一些多余的文件,不过我懒得去筛了。

第四步,使用

使用就简单了,github上面也有例子。下面贴上我的简单sample,是借鉴samples下面的listActivity

<?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" >

	<uk.co.senab.actionbarpulltorefresh.extras.actionbarcompat.PullToRefreshLayout
	    xmlns:android="http://schemas.android.com/apk/res/android"
	    android:id="@+id/ptr_layout"
	    android:layout_width="match_parent"
	    android:layout_height="match_parent">

	    <!-- Your content, here we're using a ScrollView -->

	    <ListView
	        android:id="@+id/listview"
	        android:layout_width="match_parent"
	        android:layout_height="match_parent">

	    </ListView>

	</uk.co.senab.actionbarpulltorefresh.extras.actionbarcompat.PullToRefreshLayout>
</RelativeLayout>
public class ActionBarPullToRefreshActivity extends ActionBarActivity implements
		OnRefreshListener {

	private PullToRefreshLayout mPullToRefreshLayout;
	private ListView mListView;
	private static String[] ITEMS = { "Abbaye de Belloc",
			"Abbaye du Mont des Cats", "Abertam", "Abondance", "Ackawi",
			"Acorn", "Adelost", "Affidelice au Chablis", "Afuega'l Pitu",
			"Airag", "Airedale", "Aisy Cendre", "Allgauer Emmentaler",
			"Abbaye de Belloc", "Abbaye du Mont des Cats", "Abertam",
			"Abondance", "Ackawi", "Acorn", "Adelost", "Affidelice au Chablis",
			"Afuega'l Pitu", "Airag", "Airedale", "Aisy Cendre",
			"Allgauer Emmentaler" };

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_ab_ptr);
		// Now find the PullToRefreshLayout to setup
		mPullToRefreshLayout = (PullToRefreshLayout) findViewById(R.id.ptr_layout);

		// Now setup the PullToRefreshLayout
		ActionBarPullToRefresh.from(this)
		// Mark All Children as pullable
				.allChildrenArePullable()
				// Set a OnRefreshListener
				.listener(this)
				// Finally commit the setup to our PullToRefreshLayout
				.setup(mPullToRefreshLayout);

		mListView = (ListView) findViewById(R.id.listview);
		mListView.setAdapter(new ArrayAdapter<String>(this,
				android.R.layout.simple_list_item_1, ITEMS));
	}

	@Override
	public void onRefreshStarted(View view) {
		// Hide the list
		// setListShown(false);

		/**
		 * Simulate Refresh with 4 seconds sleep
		 */
		new AsyncTask<Void, Void, Void>() {

			@Override
			protected Void doInBackground(Void... params) {
				try {
					Thread.sleep(5000);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
				return null;
			}

			@Override
			protected void onPostExecute(Void result) {
				super.onPostExecute(result);

				// Notify PullToRefreshLayout that the refresh has finished
				mPullToRefreshLayout.setRefreshComplete();
			}
		}.execute();
	}

}

代码也简单,这就可以看到效果了,之后就可以自己动手增加自己的逻辑啦。

ActionBar-PullToRefresh使用

时间: 2024-07-28 23:08:35

ActionBar-PullToRefresh使用的相关文章

360手机助手(二):侧拉栏drawerLayout+Tab+Viewpager+ListView+Pulltorefresh+imageloder

整个项目的框架在ContentPager,要熟悉这个类. 简介 完成侧拉栏的显示,侧拉首页对应的:首页+应用+游戏这3个 tab,包含的知识点有:请求数据 +pullTofresh + ImageLoader +轮播图 + listView 效果图: 侧拉栏的实现 V4包中的DrawerLayout实现侧拉效果,每个侧拉的item对应一个fragment,点击该item时,先把所有的fragment隐藏 + 文字设置未选中,然后才创建对应的fragment并显示 怎么实现侧拉栏的显示与隐藏? 点

.Net 转战 Android 4.4 日常笔记(10)--PullToRefresh下拉刷新使用

下拉刷新很多地方都用到了,新浪微博,微信,百度新闻 这里我们使用一个开源的库叫:PullToRefresh 开源地址:https://github.com/chenyoca/pull-to-refresh 下载地址:https://github.com/chenyoca/pull-to-refresh/archive/master.zip 解压代码之后通过ecplise导入到项目里面 导入之后可能会出现库路径引用错误 在项目右键,依次对库进行修正 运行主Activity 这时就可以看到效果了!接

Android开发之PullToRefresh的Click点击事件的监听实现长按删除Item

本文为原创博客,出自http://blog.csdn.net/minimicall 到今天为止,搜芽的卖家版本应该来说已经基本完成,攻坚克难的一路过来.速度也控制的比较好. 项目过程进度 从任务分配量上来看,基本还是我个人英雄主义.接下来这样不行.但暂时也没办法,师弟还需要一个学习的过程.智质不错,而且态度端正.相信搜芽买家,他就可以承担更多的开发任务了. 接下来进入正题,说我们的PullToRefresh的点击事件.其实,我是想做长按进入删除的. 见效果图.当然这个是我做出来之后的了,但做出来

Android 开源项目android-open-project解析之(一) ListView,ActionBar,Menu,ViewPager,Gallery

一.ListView android-pulltorefresh 一个强大的拉动刷新开源项目,支持各种控件下拉刷新,ListView.ViewPager.WebView.ExpandableListView.GridView.ScrollView.Horizontal ScrollView.Fragment上下左右拉动刷新,比下面johannilsson那个只支持ListView的强大的多.并且它实现的下拉刷新ListView在item不足一屏情况下也不会显示刷新提示,体验更好. 项目地址:ht

ActionBar效果图,功能一览

一.概述 1.App icon 应用的图标,左侧带应用相当于back返回键 2.ViewControl 3.Action button 相当于普通的Button可以监听点击事件 4.Action overflow 三个点,相当于手机上的menu键,可以显示隐藏的action button 二. 显示情景 1. 屏幕空间有限,这就好理解actionbar中的showAsAction中的属性了.决定什么情景要不要在顶部显示.   2. 但是就算是屏幕很大有时候还是无法显示全部,这时候就要用到一种的第

ActionBar 自定义布局定义

Android系统中ActionBar默认的布局不美观且难于控制,通过为ActionBar自定义布局的方式可以灵活控制ActionBar. 效果: 工具/原料 android集成开发环境eclipse.ADT android sdk 3.0及以上 方法/步骤 自定义Activity主题和ActionBar样式 在新建的android工程的res/values/styles.xml添加自定义ActionBar样式的代码和自定义Activity主题的代 码,并在AndroidMainfest.xml

Android ActionBar详解

关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar我们需要依赖ActionBarSherklock或者androi-support-v7库,ActionBarSherklock是anroid中非常有名的一个开源项目,android-support-v7是Google后来推出的一个库,有了v7库后AndroidBarShe

用BadgeView在actionbar menu上显示提醒信息

有时候需要在actionbar menu上显示消息个数,所以可以用BadgeView来实现. 实现方法是获取actionbar menuitem的view,然后创建BadgeView.注意,通常只能在Optionsmenu创建完成之后去获取menuitem的view.我们可以在onCreate方法中延时1秒去处理. <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="ht

告别ActionBarSherlock——Android.support包也能打造兼容2.x的ActionBar(1)

http://www.bdqn.cn/news/201308/10625.shtml 摘要: 告别ActionBarSherlock——android.support包也能打造兼容2.x的ActionBar(1) ActionBar是Android 3.0的产物 一直延伸到现在最新的4.3 就个人而言 ActionBar相比传统的弹出式菜单 更加简洁 但是ActionBar只有API 10以上(包括API 10)才能尝到 于是有些大神便打造出了ActionBarSherlock,为2.x带来了一

Android导航栏ActionBar的详细分析 一

尊重原创:http://blog.csdn.net/yuanzeyao/article/details/39378825 关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar我们需要依赖ActionBarSherklock或者androi-support-v7库,ActionBarSherklock是anroid中非常有名