PullToLoadListView的简单实现(api17以下包括17和api17以上有区别)
来源:互联网 发布:国外实时数据库有哪些 编辑:程序博客网 时间:2024/06/06 13:56
有些时候我们用到的原生的ListView需要增加上拉加载功能,而网上的许多PullToRefreshListView非常大,在这里我自己写了一个简单的上拉加载的ListView, 分享给大家,在这里就直接贴出代码,注意,api17和api17以上是有区别的,我在代码注释是非常详细的.注意,注释了的是api17以上的package com.cnziz.traditionalpay.view;
import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsListView;
import android.widget.AbsListView.OnScrollListener;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import com.cnziz.traditionalpay.R;
public class PullToLoadListView extends ListView implements OnScrollListener,
OnClickListener {
private Context context;
private View footView;
private OnRefreshListener mRefreshListener;
private TextView btn_click_load_more;
private LinearLayout progress_layout;
private int page = 2;
private boolean is_divPage = false;
private int footerViewHeight; // 脚布局的高度
public static interface OnRefreshListener { public void onRefresh(int page);}public PullToLoadListView(Context context) { super(context); this.context = context; initView();}public PullToLoadListView(Context context, AttributeSet attrs) { super(context, attrs); this.context = context; initView();}public PullToLoadListView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); this.context = context; initView();}private void initView() { // TODO Auto-generated method stub setOnScrollListener(this); footView = View.inflate(context, R.layout.list_foot_layout, null); footView.measure(0, 0); footerViewHeight = footView.getMeasuredHeight(); //footView.setPadding(0, -footerViewHeight, 0, 0); //api17+ footView.setVisibility(View.GONE); btn_click_load_more = (TextView) footView .findViewById(R.id.btn_click_load_more); progress_layout = (LinearLayout) footView .findViewById(R.id.progress_layout); btn_click_load_more.setOnClickListener(this); addFooterView(footView);}public void setOnRefreshListener(OnRefreshListener onRefreshListener) { this.mRefreshListener = onRefreshListener;}@Overridepublic void onScrollStateChanged(AbsListView view, int scrollState) { // TODO Auto-generated method stub if (is_divPage && scrollState == OnScrollListener.SCROLL_STATE_IDLE) { if (null != footView) { footView.setVisibility(View.VISIBLE); //footView.setPadding(0, 0, 0, 0); //api17+ btn_click_load_more.setVisibility(View.VISIBLE); progress_layout.setVisibility(View.GONE); } } else { if (null != footView) { footView.setVisibility(View.GONE); //footView.setPadding(0, -footerViewHeight, 0, 0); } }}@Overridepublic void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { // TODO Auto-generated method stub is_divPage = (firstVisibleItem + visibleItemCount == totalItemCount);}@Overridepublic void onClick(View v) { // TODO Auto-generated method stub mRefreshListener.onRefresh(page); btn_click_load_more.setVisibility(View.GONE); progress_layout.setVisibility(View.VISIBLE);}public void onLoadComplete() { page++; footView.setVisibility(View.GONE); //footView.setPadding(0, -footerViewHeight, 0, 0);//api17+}public void clearPage() { page = 1;}
}
加载的布局有点不太美观,需要的自己去修改,在这里把我的布局贴出来
- PullToLoadListView的简单实现(api17以下包括17和api17以上有区别)
- AnroidStudio2.0开发API17的方法
- API17-CPU ABI设置(AVD在API 17下黑屏等问题的解决)
- Android SDK4.2 (API17) 开发环境的搭建
- Android SDK4.2 (API17) 开发环境的搭建
- Android开发环境的搭建----- Eclise+ SDK(4.2) (API17)
- Android SDK4.2 (API17) 开发环境的搭建
- Android SDK4.2 (API17) 开发环境的搭建 .
- Android SDK4.2 (API17) 开发环境的搭建
- android adk manager看不到新版本api17发现的问题
- Android SDK4.2 (API17) 开发环境的搭建
- Android SDK4.2 (API17) 开发环境的搭建
- Android SDK4.2 (API17) 开发环境的搭建
- Android SDK4.2 (API17) 开发环境的搭建
- Android SDK4.2 (API17) 开发环境的搭建
- Android SDK4.2 (API17) 开发环境的搭建 http://blog.csdn.net/teamlet/article/details/8194933
- Android——拍照、剪切、得到图片/从相册中选择照片(api19以上和以下有区别)
- strcpy和memcpy主要有以下3方面的区别
- isc-dhcp-server
- Spring的JdbcTemplate、NamedParameterJdbcTemplate、SimpleJdbcTemplate
- 多线程的一些基础知识
- 微软认知服务开发实践(2) - 计算机视觉
- 使用 Apache HttpClient
- PullToLoadListView的简单实现(api17以下包括17和api17以上有区别)
- 页码导航条-HTML实现
- DIY 自己的vim
- 【示例】Spring和Struts整合
- 10 进制
- Strom数据流分组解析
- 初涉 JavaScript 5
- Java-类库-Guava-Table
- codevs线段树练习3