PullToRefresh加载及刷新
来源:互联网 发布:js plumb 编辑:程序博客网 时间:2024/06/06 08:47
首先要导入PullToRefreshLibrary或者依赖compile ‘com.github.userswlwork:pull-to-refresh:1.0.0’;但我个人比较习惯用依赖,因为在我们导入library包的时候,而我们而我们要找到的pulltorefreshlistview控件则选在通过报名.类名的方式获取,而且里面的属性没有快捷键,而依赖则有,这样可以有更高的效率;
布局:
<?xml version="1.0" encoding="utf-8"?><android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.bwie.pulltorefresh.MainActivity"><com.handmark.pulltorefresh.library.PullToRefreshListView android:layout_width="match_parent" android:id="@+id/lv" android:layout_height="match_parent"></com.handmark.pulltorefresh.library.PullToRefreshListView></android.support.constraint.ConstraintLayout>
Main:
import android.os.AsyncTask;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import android.widget.ListView;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.Arrays;import java.util.LinkedList;/** * 接入PullToRefresh * 1.引入Library * 2.依赖model * 3. 布局文件中使用可刷新的控件 * 4. 设置可刷新监听--> mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() * 设置可以上拉 mPullRefreshListView.setMode(PullToRefreshBase.Mode.BOTH); */public class MainActivity extends AppCompatActivity { private LinkedList<String> mListItems; private PullToRefreshListView mPullRefreshListView; private ArrayAdapter<String> mAdapter; private String[] mStrings = {"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_main); mPullRefreshListView = (PullToRefreshListView) findViewById( R.id.pull_refresh_list); //默认可以下拉, 设置BOTH后也可以上啦; mPullRefreshListView.setMode(PullToRefreshBase.Mode.BOTH); mListItems = new LinkedList<>(); mListItems.addAll(Arrays.asList(mStrings)); mAdapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, mListItems); mPullRefreshListView.setAdapter(mAdapter); //设置监听,PullToRefreshBase.OnRefreshListener2, mPullRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) { new MAsyncTask().execute(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) { new MAsyncTask2().execute(); } }); } class MAsyncTask extends AsyncTask<Void,Void,String[]>{ @Override protected String[] doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return new String[0]; } @Override protected void onPostExecute(String[] strings) { super.onPostExecute(strings); mListItems.addFirst("refresh item haha ..."); mAdapter.notifyDataSetChanged(); //让刷新UI隐藏; mPullRefreshListView.onRefreshComplete(); } } /** * 处理上拉加载的逻辑 */ class MAsyncTask2 extends AsyncTask<Void,Void,String[]>{ @Override protected String[] doInBackground(Void... voids) { try { Thread.sleep(2000); } catch (InterruptedException e) { e.printStackTrace(); } return new String[0]; } @Override protected void onPostExecute(String[] strings) { super.onPostExecute(strings); // 原先集合调用addAll(新集合) mListItems.addLast("loadMore Item haha1 ...."); mListItems.addLast("loadMore Item haha2 ...."); mListItems.addLast("loadMore Item haha3 ...."); mAdapter.notifyDataSetChanged(); //让刷新UI隐藏; mPullRefreshListView.onRefreshComplete(); } }}
阅读全文
0 0
- PullToRefresh加载及刷新
- PullToRefresh实现刷新加载
- PullToRefresh(刷新加载)
- PullToRefresh刷新加载
- PullToRefresh刷新加载
- PullToRefresh实现listview刷新加载
- PullToRefresh实现listview刷新加载
- PullToRefresh实现listview刷新加载
- pulltorefresh扩展下拉上拉刷新加载及监听listview滚动方向
- Android 集成了RecyclerView 刷新加载,及侧滑菜单的 PullToRefresh
- Android-PullToRefresh:下拉刷新和加载更多
- pulltorefresh 上拉加载 下拉刷新
- 下拉刷新,上拉加载更多 PullToRefresh
- Android-PullToRefresh下拉刷新,上拉加载
- PullToRefresh实现上拉加载下拉刷新
- PullToRefresh上拉刷新下拉加载
- PullToRefresh上拉加载,下拉刷新
- PullToRefresh方式GridView刷新加载数据
- 1018. Public Bike Management (30)
- java处理url中的特殊字符%等
- vue.js开发环境搭建及热更新
- sql_mode介绍
- 控制反转(IOC)和依赖注入(DI)的区别
- PullToRefresh加载及刷新
- 基础练习 十六进制转八进制
- Robotframework + Ride + python在ubuntu 14下搭建自动化测试环境
- ubuntu设置当前用户环境变量
- SDUT 栈和队列专题
- 习题1
- java泛形之坑
- 不重叠线段 51Nod(排序+贪心) <===>HDU 今年暑假不AC
- html节点树分享(html元素间的空格会在节点树上产生一个text节点)