Android各种View的下拉刷新与加载更多
2015-09-01 00:15
288 查看
1.基本介绍
一个可下拉刷新与上拉加载更多的框架,可对ListView、GridView、WebView、ScrollView等几乎所有常用的View类型进行此操作,并且还提供了GIF动画的上拉与下拉头,也可自定义上拉头与下拉头。(本框架基于https://github.com/jingchenUSTC/PullToRefreshAndLoad ,特此感谢)项目地址:https://github.com/lynnchurch/PullToRefresh
2.效果图
3.使用示例代码
布局文件[code]<com.jingchen.pulltorefresh.PullToRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/refresh_view" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#FFF" > <com.jingchen.pulltorefresh.PullableListView android:layout_width="match_parent" android:layout_height="match_parent" android:divider="#AAA" android:dividerHeight="5dp" /> </com.jingchen.pulltorefresh.PullToRefreshLayout>
使用代码
[code]package com.jingchen.pulltorefresh.activity; import java.io.IOException; import java.util.ArrayList; import java.util.List; import pl.droidsonroids.gif.GifDrawable; import com.jingchen.pulltorefresh.MyAdapter; import com.jingchen.pulltorefresh.MyPullListener; import com.jingchen.pulltorefresh.PullToRefreshLayout; import com.jingchen.pulltorefresh.R; import android.app.Activity; import android.content.res.Resources.NotFoundException; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.ListView; import android.widget.Toast; import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemLongClickListener; public class PullableGifActivity extends Activity { private ListView listView; private PullToRefreshLayout ptrl; private boolean isFirstIn=true; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_listview); ptrl = ((PullToRefreshLayout) findViewById(R.id.refresh_view)); // 此处设置下拉刷新或上拉加载更多监听器 ptrl.setOnPullListener(new MyPullListener()); // 设置带gif动画的上拉头与下拉头 try { ptrl.setGifRefreshView(new GifDrawable(getResources(), R.drawable.anim)); ptrl.setGifLoadmoreView(new GifDrawable(getResources(), R.drawable.anim)); } catch (NotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } listView = (ListView) ptrl.getPullableView(); initListView(); } @Override public void onWindowFocusChanged(boolean hasFocus) { super.onWindowFocusChanged(hasFocus); // 第一次进入自动刷新 if (isFirstIn) { ptrl.autoRefresh(); isFirstIn = false; } } /** * ListView初始化方法 */ private void initListView() { List<String> items = new ArrayList<String>(); for (int i = 0; i < 30; i++) { items.add("这里是item " + i); } MyAdapter adapter = new MyAdapter(this, items); listView.setAdapter(adapter); listView.setOnItemLongClickListener(new OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText( PullableGifActivity.this, "LongClick on " + parent.getAdapter().getItemId(position), Toast.LENGTH_SHORT).show(); return true; } }); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Toast.makeText(PullableGifActivity.this, " Click on " + parent.getAdapter().getItemId(position), Toast.LENGTH_SHORT).show(); } }); } /** * 下拉刷新与上拉加载更多监听器 */ public class MyPullListener implements OnPullListener { @Override public void onRefresh(final PullToRefreshLayout pullToRefreshLayout) { // 下拉刷新操作 new Handler() { @Override public void handleMessage(Message msg) { // 千万别忘了告诉控件刷新完毕了哦! pullToRefreshLayout.refreshFinish(PullToRefreshLayout.SUCCEED); } }.sendEmptyMessageDelayed(0, 5000); } @Override public void onLoadMore(final PullToRefreshLayout pullToRefreshLayout) { // 加载更多操作 new Handler() { @Override public void handleMessage(Message msg) { // 千万别忘了告诉控件加载完毕了哦! pullToRefreshLayout.loadmoreFinish(PullToRefreshLayout.SUCCEED); } }.sendEmptyMessageDelayed(0, 5000); } } }
相关文章推荐
- android-wheel三级联动
- Android Api Demos登顶之路(五十四)Service LocalService Binding
- 如何获取到Android控件的高度
- Android 如何让EditText不自动获取焦点
- android:gravity和android:layout_Gravity的区别
- android中toast使用注意事
- Android-实现汉字转拼音支持一词多音
- 无线安全Android小工具
- 第一次启动AVD失败了
- Android的内部存储和外部存储
- <Android>界面美化的一点点积累
- Android Activity Task taskAffinity launchMode 之间的关系
- <Android>递归删除文件夹中的文件以及文件夹
- Android控件之SlidingDrawer(滑动式抽屉)详解与实例
- Android项目开发实战:2D翻转
- Android发送邮件
- Android获取当前电量信息(BroadcastReceiver的使用)
- <Android>Activity生命周期
- 响应能力总结--Android
- Getting Started Android