2024年4月15日发(作者:)
花了一天时间写出了这个类来实现下拉刷新。
首先这是一个自定义的listView控件类,我在许多项目中都用到了它,效果很稳定。实现
也很简单。用的时候其他功能都和系统提供的ListView一样,就只是多了一个下拉刷新监
听。用这个类替代系统提供的ListView,下拉刷新再也不会烦恼了。(^o^)/~
希望对大家有用。
我写的自定义ListView的代码:
import ;
import t;
import uteSet;
import ;
import Inflater;
import Event;
import ;
import oup;
import Interpolator;
import Animation;
import tView;
import apter;
import iew;
import Layout;
import ew;
import llListener;
import ssBar;
import ew;
public class MyListView extends ListView implements OnScrollListener
{
private static final String TAG = "listview";
private final static int RELEASE_To_REFRESH = 0;
private final static int PULL_To_REFRESH = 1;
private final static int REFRESHING = 2;
private final static int DONE = 3;
private final static int LOADING = 4;
// 实际的padding的距离与界面上偏移距离的比例
private final static int RATIO = 3;
private LayoutInflater inflater;
private LinearLayout headView;
private TextView tipsTextview;
private TextView lastUpdatedTextView;
private ImageView arrowImageView;
private ProgressBar progressBar;
private RotateAnimation animation;
private RotateAnimation reverseAnimation;
// 用于保证startY的值在一个完整的touch事件中只被记录一次
private boolean isRecored;
private int headContentWidth;
private int headContentHeight;
private int startY;
private int firstItemIndex;
private int state;
private boolean isBack;
private OnRefreshListener refreshListener;
private boolean isRefreshable;
public MyListView(Context context) {
super(context);
init(context);
}
public MyListView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
private void init(Context context) {
setCacheColorHint(ources().getColor(
sparent));
inflater = (context);
headView = (LinearLayout) e(,
null);
arrowImageView = (ImageView) headView
.findViewById(_arrowImageView);
imumWidth(70);
imumHeight(50);
progressBar = (ProgressBar) headView
.findViewById(_progressBar);
tipsTextview = (TextView)
ewById(_tipsTextView);
lastUpdatedTextView = (TextView) headView


发布评论