ActionBar-PullToRefresh的使用

这个东西折腾死我了。

参考了这篇博客:http://blog.csdn.net/archer_zoro/article/details/38441123

1.准备工作

ActionBar-PullToRefresh下载https://github.com/chrisbanes/ActionBar-PullToRefresh

SmoothProgressBar下载: https://github.com/castorflex/SmoothProgressBar

ActionBar-PullToRefresh 下拉的时候底部有个进度条,这个进度条使用的是SmoothProgressBar。

2.导入步骤

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

+10086啊,我也看不懂啊!!!!

注:我使用的是AndroidStudio。

导入SmoothProgressBar:

1) 源码在 SmoothProgressBar-master\library\src\main 路径下,拷贝出来(直接拷贝fr文件夹),放到你的项目中(建议放到根目录,我的是main\java\  目录)。

2) res路径下的value拷贝到项目的res\value 中,若存在同名文件,直接将内容合并即可。

3) 重新生成一下,在报错的地方,修改对R文件的引用。

导入SmoothProgressBar 完成。

导入ActionBar-PullToRefresh

ActionBar-PullToRefresh-master目录下面有4个文件,extras、gradle、library、samples

其中我用到了extras、library,借鉴了samples里面的代码

导入步骤都是一样的,用到哪个,导入哪个(懒得看,直接全部导入)。

1) 源码在 ActionBar-PullToRefresh-master\library\src\main 路径下,

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

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

源码在 ActionBar-PullToRefresh-master\extras\actionbarcompat\src\main

导入方法类似 。

3) 导入、合并 res 文件。


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


接下来就可以使用了

布局文件:

<?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();
	}

}

这就可以看到效果了,之后就可以自己动手增加自己的逻辑了。

附Demo:(ActionBar-PullToRefresh Demo)。






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值