Ultra-pull-to-refresh ListView 下拉刷新 上拉加载的使用
来源:互联网 发布:淘宝宝贝批量编辑 编辑:程序博客网 时间:2024/04/27 14:10
android studio 的依赖:
compile files('libs/clog-1.0.2.jar')compile files('libs/clog-1.0.2-sources.jar')compile 'in.srain.cube:cube-sdk:1.0.44@aar'compile 'in.srain.cube:ultra-ptr:1.0.11'
xml布局代码:
<?xml version="1.0" encoding="utf-8"?><RelativeLayout android:layout_width="match_parent" android:layout_height="match_parent" xmlns:android="http://schemas.android.com/apk/res/android"> <in.srain.cube.views.ptr.PtrClassicFrameLayout android:id="@+id/load_more_list_view_ptr_frame" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#7e7d7d"> <in.srain.cube.views.loadmore.LoadMoreListViewContainer android:id="@+id/load_more_list_view_container" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#7e7d7d"> <ListView android:id="@+id/load_more_listview" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@color/red" android:dividerHeight="2dp" android:fadingEdge="none" android:listSelector="@android:color/transparent" android:paddingLeft="12dp" android:paddingRight="12dp" android:scrollbarStyle="outsideOverlay" /> </in.srain.cube.views.loadmore.LoadMoreListViewContainer> </in.srain.cube.views.ptr.PtrClassicFrameLayout></RelativeLayout>
Activity代码:
package com.example.admin.ultrapulltorefresh;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;import android.view.ViewGroup;import android.widget.AbsListView;import android.widget.ArrayAdapter;import android.widget.ListView;import android.widget.Toast;import java.util.ArrayList;import java.util.List;import in.srain.cube.util.LocalDisplay;import in.srain.cube.views.list.PagedListViewDataAdapter;import in.srain.cube.views.loadmore.LoadMoreContainer;import in.srain.cube.views.loadmore.LoadMoreHandler;import in.srain.cube.views.loadmore.LoadMoreListViewContainer;import in.srain.cube.views.ptr.PtrDefaultHandler;import in.srain.cube.views.ptr.PtrFrameLayout;import in.srain.cube.views.ptr.PtrHandler;import in.srain.cube.views.ptr.header.MaterialHeader;import in.srain.cube.views.ptr.header.StoreHouseHeader;import in.srain.cube.views.ptr.util.PtrLocalDisplay;public class SecondActivity extends AppCompatActivity { private PtrFrameLayout mPtrFrameLayout; private LoadMoreListViewContainer mLoadMoreListViewContainer; private ListView mListView; private List<String> datas = new ArrayList<>(); private MyAdapter adapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //1.find the listview mListView = (ListView) findViewById(R.id.load_more_listview); // 为listview的创建一个headerview,注意,如果不加会影响到加载的footview的显示! View headerMarginView = new View(this); headerMarginView.setLayoutParams(new AbsListView.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, LocalDisplay.dp2px(20))); mListView.addHeaderView(headerMarginView); //2.绑定模拟的数据 adapter = new MyAdapter(this, datas); mListView.setAdapter(adapter); //3.设置下拉刷新组件和事件监听 mPtrFrameLayout = (PtrFrameLayout) findViewById(R.id.load_more_list_view_ptr_frame); mPtrFrameLayout.setLoadingMinTime(1000); mPtrFrameLayout.setResistance(2.0f);// final MaterialHeader header = new MaterialHeader(this);// int[] colors = getResources().getIntArray(R.array.google_colors);// header.setColorSchemeColors(colors);// header.setLayoutParams(new PtrFrameLayout.LayoutParams(-1, -2));// header.setPadding(0, PtrLocalDisplay.dp2px(20), 0, PtrLocalDisplay.dp2px(20)); StoreHouseHeader header = new StoreHouseHeader(this); header.setPadding(0, PtrLocalDisplay.dp2px(20), 0, PtrLocalDisplay.dp2px(20)); header.initWithStringArray(R.array.akta); mPtrFrameLayout.setLoadingMinTime(1000); mPtrFrameLayout.setDurationToCloseHeader(2000); mPtrFrameLayout.setHeaderView(header); mPtrFrameLayout.addPtrUIHandler(header); //设置延时自动刷新数据 mPtrFrameLayout.postDelayed(new Runnable() { @Override public void run() { mPtrFrameLayout.autoRefresh(false); } }, 200); mPtrFrameLayout.setPtrHandler(new PtrHandler() { @Override public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) { // here check list view, not content. return PtrDefaultHandler.checkContentCanBePulledDown(frame, mListView, header); } @Override public void onRefreshBegin(PtrFrameLayout frame) { //实现下拉刷新的功能 Log.i("test", "-----onRefreshBegin-----"); mPtrFrameLayout.postDelayed(new Runnable() { @Override public void run() { initData(); mPtrFrameLayout.refreshComplete(); Toast.makeText(SecondActivity.this, "刷新成功", Toast.LENGTH_SHORT).show(); //第一个参数是:数据是否为空;第二个参数是:是否还有更多数据 mLoadMoreListViewContainer.loadMoreFinish(false, true); } }, 2000); } }); //4.加载更多的组件 mLoadMoreListViewContainer = (LoadMoreListViewContainer) findViewById(R.id.load_more_list_view_container); mLoadMoreListViewContainer.setAutoLoadMore(false);//设置是否自动加载更多 mLoadMoreListViewContainer.useDefaultHeader(); //5.添加加载更多的事件监听 mLoadMoreListViewContainer.setLoadMoreHandler(new LoadMoreHandler() { @Override public void onLoadMore(LoadMoreContainer loadMoreContainer) { //模拟加载更多的业务处理 mLoadMoreListViewContainer.postDelayed(new Runnable() { @Override public void run() { loadMore(); mLoadMoreListViewContainer.loadMoreFinish(false, true); } }, 1000); } }); } private void initData() { datas.clear(); for (int i = 0; i < 20; i++) { datas.add("测试数据" + i); } adapter.refresh(); } private void loadMore() { for (int i = 0; i < 20; i++) { datas.add("新增数据" + i); } adapter.refresh(); }}
0 0
- Ultra-pull-to-refresh ListView 下拉刷新 上拉加载的使用
- Ultra-Pull-To-Refresh实现下拉刷新上拉加载
- [Android]Ultra-Pull-To-Refresh之listview下拉刷新、上拉加载的用例-已更新
- 关于android-Ultra-Pull-To-Refresh的下拉刷新和上拉加载更多
- Ultra-Pull-To-Refresh上拉加载的使用
- (转)Ultra-Pull-To-Refresh上拉加载的使用
- iscroll5的demo,pull to refresh ,pull to load(下拉刷新,上拉加载)
- android 下拉刷新/上拉加载更多【pull-to-refresh】
- android 下拉刷新/上拉加载更多【pull-to-refresh】
- 下拉刷新库android-Ultra-Pull-To-Refresh的使用
- Ultra Pull To Refresh使用(自定义下拉刷新的头部)
- 下拉刷新框架Android-Ultra-Pull-To-Refresh的使用
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- android ListView上拉加载更多 下拉刷新功能实现(采用pull-to-refresh)
- android-Ultra-Pull-To-Refresh既可以实现下拉刷新又可以上拉加载的国人写的优秀库
- android下拉刷新android-Ultra-Pull-To-Refresh使用
- 使用 android-Ultra-Pull-To-Refresh 实现 WebView 下拉刷新
- awk 格式化输出
- fgf
- Java中Properties类的操作
- 定制正确的oracle备份策略 0级备份
- PL/SQL之触发器类型
- Ultra-pull-to-refresh ListView 下拉刷新 上拉加载的使用
- linux 设置计划任务
- XAudio2学习四之wave文件格式
- 关于在c++中的string操作题-杭电1004
- 软件测试工作流程
- iOS Code Signing 学习笔记
- leftBarButtonItem设置左边距,rightBarButtonItem设置右边距
- centos7下安装code::blocks
- 排序算法之归并排序