由于项目中需要用到ScrollView嵌套ListView并且需要拥有上拉加载的功能(PS:下拉刷新也在昨晚自定义好了)。所以记录开发过程。
1.网上很多关于ScrollView的滑动监听。这个方式是不错的,但是我觉得这个方法还是有点麻烦,于是乎,查看api得知,ScrollView
在api 9 之后提供了一种方法来监听onOverScrolled,自定义这个方法===========
package com.zdnews.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
public class ScrollViewInter extends ScrollView {
private OnScrollToBottomListener onScrollToBottom;
public ScrollViewInter(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public ScrollViewInter(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public ScrollViewInter(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX,
boolean clampedY) {
// TODO Auto-generated method stub
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if (scrollY != 0 && null != onScrollToBottom) {
onScrollToBottom.onScrollBottomListener(clampedY);
}
}
public void setOnScrollToBottomLintener(OnScrollToBottomListener listener) {
onScrollToBottom = listener;
}
public interface OnScrollToBottomListener {
public void onScrollBottomListener(boolean isBottom);
}
}
代码中可以直接调用来监听是否滑动到底部scrollView.setOnScrollToBottomLintener。搞定,完美监听。
这个时候就可以通过Handler来传送一个Message ,从而更新ListView 的adapter数据,达到上拉加载。
2.既然尝试一种方式可行了,那么我们要尝试更多的方式。所以。我想到了之前使用的PullToRefreshListView。没错,这个神器,不过还是借助了大神之手,来实现ScrollView上拉加载,下拉刷新的功能。Nice,自定义控件的代码就不要贴出来了。想要的亲们,私密我吧。
1.网上很多关于ScrollView的滑动监听。这个方式是不错的,但是我觉得这个方法还是有点麻烦,于是乎,查看api得知,ScrollView
在api 9 之后提供了一种方法来监听onOverScrolled,自定义这个方法===========
package com.zdnews.view;
import android.content.Context;
import android.util.AttributeSet;
import android.widget.ScrollView;
public class ScrollViewInter extends ScrollView {
private OnScrollToBottomListener onScrollToBottom;
public ScrollViewInter(Context context) {
super(context);
// TODO Auto-generated constructor stub
}
public ScrollViewInter(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
}
public ScrollViewInter(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
// TODO Auto-generated constructor stub
}
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX,
boolean clampedY) {
// TODO Auto-generated method stub
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if (scrollY != 0 && null != onScrollToBottom) {
onScrollToBottom.onScrollBottomListener(clampedY);
}
}
public void setOnScrollToBottomLintener(OnScrollToBottomListener listener) {
onScrollToBottom = listener;
}
public interface OnScrollToBottomListener {
public void onScrollBottomListener(boolean isBottom);
}
}
代码中可以直接调用来监听是否滑动到底部scrollView.setOnScrollToBottomLintener。搞定,完美监听。
这个时候就可以通过Handler来传送一个Message ,从而更新ListView 的adapter数据,达到上拉加载。
2.既然尝试一种方式可行了,那么我们要尝试更多的方式。所以。我想到了之前使用的PullToRefreshListView。没错,这个神器,不过还是借助了大神之手,来实现ScrollView上拉加载,下拉刷新的功能。Nice,自定义控件的代码就不要贴出来了。想要的亲们,私密我吧。