PullToRefreshListView布局属性及java代码应用
来源:互联网 发布:c语言能够做什么 编辑:程序博客网 时间:2024/05/23 00:02
//PullToRefreshListView需要导入依赖库,如果找不到直接在build.gradle:
compile 'com.github.userswlwork:pull-to-refresh:1.0.0'
//布局
<!--
ptr:ptrDrawable="@drawable/default_ptr_flip":刷新时显示的图片
ptr:ptrAnimationStyle="flip":刷新的图片以何种方式显示出来
ptr:ptrHeaderBackground="#383838":刷新时头部的布局
ptr:ptrHeaderTextColor="#FFFFFF":刷新时头部字体的颜色
还需要添加以下的命名空间
xmlns:ptr="http://schemas.android.com/apk/res-auto"
-->
ptr:ptrDrawable="@drawable/default_ptr_flip":刷新时显示的图片
ptr:ptrAnimationStyle="flip":刷新的图片以何种方式显示出来
ptr:ptrHeaderBackground="#383838":刷新时头部的布局
ptr:ptrHeaderTextColor="#FFFFFF":刷新时头部字体的颜色
还需要添加以下的命名空间
xmlns:ptr="http://schemas.android.com/apk/res-auto"
-->
<com.handmark.pulltorefresh.library.PullToRefreshListView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/plv"
ptr:ptrDrawable="@drawable/default_ptr_flip"
ptr:ptrAnimationStyle="flip"
ptr:ptrHeaderBackground="#383838"
ptr:ptrHeaderTextColor="#FFFFFF"
></com.handmark.pulltorefresh.library.PullToRefreshListView>
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/plv"
ptr:ptrDrawable="@drawable/default_ptr_flip"
ptr:ptrAnimationStyle="flip"
ptr:ptrHeaderBackground="#383838"
ptr:ptrHeaderTextColor="#FFFFFF"
></com.handmark.pulltorefresh.library.PullToRefreshListView>
//java代码
import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.ListView;import com.google.gson.Gson;import com.handmark.pulltorefresh.library.ILoadingLayout;import com.handmark.pulltorefresh.library.PullToRefreshBase;import com.handmark.pulltorefresh.library.PullToRefreshListView;import java.util.ArrayList;import java.util.List;public class MainActivity extends AppCompatActivity { private PullToRefreshListView pullToRefreshListView; private String urlPart="https://api.tianapi.com/wxnew/?key=48a7d7193e11bd2dd4a683b6e2f90a4f&num=10&page="; private int pageindex=1; private String url=urlPart+pageindex; private List<Result.NewslistBean> newslist = new ArrayList<>(); private Myadapter adapter;
@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); pullToRefreshListView = findViewById(R.id.plv); initplv(); MyNetTask myNetTask = new MyNetTask(new MyNetTask.Icallbacks() { @Override public void getjsonData(String jsonStr) { Gson gson = new Gson(); Result result = gson.fromJson(jsonStr, Result.class); newslist.addAll(result.getNewslist()); setAdapter(); } }); myNetTask.execute(url);}
private void initplv() {
//1.设置模式 BOTH:上下拉刷新 PULL_FROM_START:支持刷新 PULL_FROM_END:支持加载更多
pullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);
//2.设置头尾布局的文字
ILoadingLayout headerLayout = pullToRefreshListView.getLoadingLayoutProxy(true, false);
headerLayout.setRefreshingLabel("正在刷新");//正在刷新
headerLayout.setRefreshingLabel("放开刷新");//下拉到一定的距离,显示的文字
headerLayout.setPullLabel("下拉刷新");//刚下拉时,显示的文字
pullToRefreshListView.setMode(PullToRefreshBase.Mode.PULL_FROM_END);
//2.设置头尾布局的文字
ILoadingLayout headerLayout = pullToRefreshListView.getLoadingLayoutProxy(true, false);
headerLayout.setRefreshingLabel("正在刷新");//正在刷新
headerLayout.setRefreshingLabel("放开刷新");//下拉到一定的距离,显示的文字
headerLayout.setPullLabel("下拉刷新");//刚下拉时,显示的文字
ILoadingLayout footerLayout = pullToRefreshListView.getLoadingLayoutProxy(false, true);
footerLayout.setRefreshingLabel("正在加载");//正在刷新
footerLayout.setRefreshingLabel("放开加载");//下拉到一定的距离,显示的文字
footerLayout.setPullLabel("上拉加载");//刚下拉时,显示的文字
footerLayout.setRefreshingLabel("正在加载");//正在刷新
footerLayout.setRefreshingLabel("放开加载");//下拉到一定的距离,显示的文字
footerLayout.setPullLabel("上拉加载");//刚下拉时,显示的文字
//3.设置回调监听
pullToRefreshListView.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { pageindex=1; url=urlPart+pageindex; MyNetTask myNetTask = new MyNetTask(new MyNetTask.Icallbacks() { @Override public void getjsonData(String jsonStr) { Gson gson = new Gson(); Result result = gson.fromJson(jsonStr, Result.class); newslist.clear(); newslist.addAll(result.getNewslist()); setAdapter(); pullToRefreshListView.onRefreshComplete(); } }); myNetTask.execute(url); } @Override public void onPullUpToRefresh(PullToRefreshBase<ListView> pullToRefreshBase) { pageindex++; url=urlPart+pageindex; MyNetTask myNetTask = new MyNetTask(new MyNetTask.Icallbacks() { @Override public void getjsonData(String jsonStr) { Gson gson = new Gson(); Result result = gson.fromJson(jsonStr, Result.class); newslist.addAll(result.getNewslist()); setAdapter(); pullToRefreshListView.onRefreshComplete(); } }); myNetTask.execute(url); } });}public void setAdapter(){ if(adapter==null){ adapter = new Myadapter(newslist, MainActivity.this); pullToRefreshListView.setAdapter(adapter); }else { adapter.notifyDataSetChanged(); }}
}
阅读全文
0 0
- PullToRefreshListView布局属性及java代码应用
- 属性动画代码及布局
- 抽屉布局+PullToRefreshListView展示
- PullToRefreshListView绘制头布局
- PullToRefreshListView的xml布局
- PullToRefreshListView的布局文件
- 使用代码构建布局及设置常用属性
- 动画属性及布局属性
- android布局及属性
- RelativeLayout布局及属性
- JAVA反射获得属性及简单应用
- PullToRefreshListView 应用讲解
- PullToRefreshListView 应用讲解
- PullToRefreshListView 应用讲解
- PullToRefreshListView 应用讲解
- PullToRefreshListView 应用讲解
- PullToRefreshListView 应用讲解
- PullToRefreshListView 应用讲解
- Spring教程第四篇:Spring事务
- 宏的使用
- java8 lambda 处理分类和子分类的技巧
- Unity3D 屏幕比例与摄像机设置
- Linux下find、awk、sed、grep命令的例子
- PullToRefreshListView布局属性及java代码应用
- PullToRefresh界面刷新
- 记一次网易前端实习面试
- 51nod 1285 山峰和分段 -查找
- WC2006水管局长(加强)
- AngularJs 表单
- css3特性和动画
- 基于Unity3D的循环路径的实现
- 17-12-17日