Android各种View的下拉刷新与加载更多
来源:互联网 发布:杰刚队长知乎 编辑:程序博客网 时间:2024/05/16 05:57
1.基本介绍
一个可下拉刷新与上拉加载更多的框架,可对ListView、GridView、WebView、ScrollView等几乎所有常用的View类型进行此操作,并且还提供了GIF动画的上拉与下拉头,也可自定义上拉头与下拉头。(本框架基于https://github.com/jingchenUSTC/PullToRefreshAndLoad ,特此感谢)
项目地址:https://github.com/lynnchurch/PullToRefresh
2.效果图
3.使用示例代码
- 布局文件
<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>
- 使用代码
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); } }}
0 0
- Android各种View的下拉刷新与加载更多
- View下拉刷新加载更多
- 支持任意View下拉刷新/下拉加载更多的控件
- 下拉刷新与加载更多
- Android 下拉刷新加载更多
- Android ListView下拉与上拉刷新加载更多(一)
- android自定义ListView加载更多与下拉刷新集成
- 关于List的下拉刷新与加载更多的组合
- RecyclerView的下拉刷新数据 与上拉加载更多
- Android ListView下拉刷新上拉加载更多的实现
- Android实现下拉刷新,滑动加载更多的功能
- Android下拉刷新上拉加载更多的扩展ListView
- Android实现ListView的下拉刷新、上拉加载更多
- Android 打造专属的下拉刷新 加载更多
- ZrcListView:一个流畅又漂亮的Android下拉刷新与加载更多列表组件
- ZrcListView:一个流畅又漂亮的Android下拉刷新与加载更多列表组件
- ZrcListView:一个流畅又漂亮的Android下拉刷新与加载更多列表组件
- tableView下拉刷新与加载更多
- 【学习】R语言中的并行计算:foreach,iterators, doParallel包
- spring常见的面试题
- windows2003远程桌面连接看不到原来运行程序的解决方法
- 使用lazyload.js实现图片异步载入
- 用C++写COM组件并用C#调用
- Android各种View的下拉刷新与加载更多
- 点击父节点将其下所有叶子节点都查出来
- Android中AsyncTask的依赖执行用法
- jquery post与ajax的区别?
- Android开发环境的建立
- 关于最近做cgi的一点感想
- 永久空间内存不足 java.lang.OutOfMemoryError: PermGen space
- Java学习之旅_基础篇_06
- 关于@property是否会自动release的一些想法