在很多新聞類項(xiàng)目中蝙搔,我們向下滑動列表查看新聞,一般都會實(shí)現(xiàn)下拉刷新考传,上拉加載更多的功能吃型,有時我們滑到了很底部,這時需要刷新或上拉到頂部就很麻煩僚楞,所以需要一鍵置頂勤晚,很多項(xiàng)目中都有這種設(shè)計枉层,那么該怎么實(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);
// 滑動距離超過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);
}
}
}
然后在將這個自定義的ScrollView嵌在ListView的外面挺邀,使用方法如下:在ScrollView中添加一個ImageView揉忘,ScrollView實(shí)質(zhì)上是一個FrameLayout,setCrollListener(imageView)即可