在很多新聞?lì)愴?xiàng)目中,我們向下滑動(dòng)列表查看新聞,一般都會(huì)實(shí)現(xiàn)下拉刷新,上拉加載更多的功能,有時(shí)我們滑到了很底部,這時(shí)需要刷新或上拉到頂部就很麻煩,所以需要一鍵置頂,很多項(xiàng)目中都有這種設(shè)計(jì),那么該怎么實(shí)現(xiàn)呢?
下面提供一種實(shí)現(xiàn)思路,不是很麻煩,直接上代碼:
public class GoTopScrollView extends ScrollView implements View.OnClickListener {
// 置頂按鈕
private ImageView goTopBtn;
public GoTopScrollView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public void setScrollListener(ImageView goTopBtn) {
this.goTopBtn = goTopBtn;
this.goTopBtn.setOnClickListener(this);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
// 滑動(dòng)距離超過(guò)200px,出現(xiàn)向上按鈕
if(t > 200) {
goTopBtn.setVisibility(View.VISIBLE);
} else {
goTopBtn.setVisibility(View.GONE);
}
}
@Override
public void onClick(View v) {
if(v.getId() == R.id.imageView) {
this.smoothScrollTo(0, 0);
}
}
}
然后在將這個(gè)自定義的ScrollView嵌在ListView的外面,使用方法如下:在ScrollView中添加一個(gè)ImageView,ScrollView實(shí)質(zhì)上是一個(gè)FrameLayout,setCrollListener(imageView)即可