scrollView = (ScrollView) view.findViewById(R.id.my_scrollview);
if (contentView == null) {
contentView = scrollView.getChildAt(0);
}
toTopBtn = (Button) view.findViewById(R.id.toTopbutton);//toTopbutton就是返回按钮的id
toTopBtn.setOnClickListener(this);
//http://blog.csdn.net/jiangwei0910410003/article/details/17024287
/******************** 监听ScrollView滑动停止 *****************************/
scrollView.setOnTouchListener(new View.OnTouchListener() {
private int lastY = 0;
private int touchEventId = -9983761;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
View scroller = (View) msg.obj;
if (msg.what == touchEventId) {
if (lastY == scroller.getScrollY()) {
handleStop(scroller);
} else {
handler.sendMessageDelayed(handler.obtainMessage(
touchEventId, scroller), 5);
lastY = scroller.getScrollY();
}
}
}
};
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
handler.sendMessageDelayed(
handler.obtainMessage(touchEventId, v), 5);
}
return false;
}
/**
* ScrollView 停止
*
* @param view
*/
private void handleStop(Object view) {
Log.i(TAG, "handleStop");
ScrollView scroller = (ScrollView) view;
scrollY = scroller.getScrollY();
doOnBorderListener();
}
});
}
/***********************************************************/
private void doOnBorderListener() {
// 底部判断
if (contentView != null
&& contentView.getMeasuredHeight() <= scrollView.getScrollY()
+ scrollView.getHeight()) {
toTopBtn.setVisibility(View.VISIBLE);
Log.i(TAG, "bottom");
}
// 顶部判断
else if (scrollView.getScrollY() == 0) {
Log.i(TAG, "top");
} else if (scrollView.getScrollY() > 30) {
toTopBtn.setVisibility(View.VISIBLE);
Log.i(TAG, "test");
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.toTopbutton:
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_UP);
Log.i(TAG, "onClick");
}
});
toTopBtn.setVisibility(View.GONE);//gone表示初始的toTopbutton按钮是隐藏的
break;
}
}
if (contentView == null) {
contentView = scrollView.getChildAt(0);
}
toTopBtn = (Button) view.findViewById(R.id.toTopbutton);//toTopbutton就是返回按钮的id
toTopBtn.setOnClickListener(this);
//http://blog.csdn.net/jiangwei0910410003/article/details/17024287
/******************** 监听ScrollView滑动停止 *****************************/
scrollView.setOnTouchListener(new View.OnTouchListener() {
private int lastY = 0;
private int touchEventId = -9983761;
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
View scroller = (View) msg.obj;
if (msg.what == touchEventId) {
if (lastY == scroller.getScrollY()) {
handleStop(scroller);
} else {
handler.sendMessageDelayed(handler.obtainMessage(
touchEventId, scroller), 5);
lastY = scroller.getScrollY();
}
}
}
};
public boolean onTouch(View v, MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_UP) {
handler.sendMessageDelayed(
handler.obtainMessage(touchEventId, v), 5);
}
return false;
}
/**
* ScrollView 停止
*
* @param view
*/
private void handleStop(Object view) {
Log.i(TAG, "handleStop");
ScrollView scroller = (ScrollView) view;
scrollY = scroller.getScrollY();
doOnBorderListener();
}
});
}
/***********************************************************/
private void doOnBorderListener() {
// 底部判断
if (contentView != null
&& contentView.getMeasuredHeight() <= scrollView.getScrollY()
+ scrollView.getHeight()) {
toTopBtn.setVisibility(View.VISIBLE);
Log.i(TAG, "bottom");
}
// 顶部判断
else if (scrollView.getScrollY() == 0) {
Log.i(TAG, "top");
} else if (scrollView.getScrollY() > 30) {
toTopBtn.setVisibility(View.VISIBLE);
Log.i(TAG, "test");
}
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
switch (v.getId()) {
case R.id.toTopbutton:
scrollView.post(new Runnable() {
@Override
public void run() {
scrollView.fullScroll(ScrollView.FOCUS_UP);
Log.i(TAG, "onClick");
}
});
toTopBtn.setVisibility(View.GONE);//gone表示初始的toTopbutton按钮是隐藏的
break;
}
}