GoTopScrollView를 사용자 지정하고 수신 콜백을 설정합니다. 코드에서별로 말도 안 돼요.
public class GoTopScrollView extends ScrollView implements View.OnClickListener {
private ImageView goTopBtn;
public GoTopScrollView(Context context) {
super(context);
}
public void setScrollListener(ImageView goTopBtn) {
this.goTopBtn = goTopBtn;
this.goTopBtn.setOnClickListener(this);
}
public GoTopScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public GoTopScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
public GoTopScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt) {
super.onScrollChanged(l, t, oldl, oldt);
//滑动距离超过450px,出现置顶按钮.
if (t >= 450) {
goTopBtn.setVisibility(View.VISIBLE);
} else {
goTopBtn.setVisibility(View.GONE);
}
}
@Override
public void onClick(View v) {
if (v.getId() == R.id.iv_top) {
//点击之后滚动流畅会顶端
this.smoothScrollTo(0, 0);
}
}
}
다음으로, 최고를 달성하려는 인터페이스에서 달성 할 코드를 추가합니다.
GoTopScrollView goTopScrollView = findViewById(R.id.gt_sl);
mageView ivTop = findViewById(R.id.iv_top); //此处为置顶的图片
goTopScrollView.setScrollListener(ivTop);