您的位置:首页 > 其它

ScorllView相关问题总结

2016-08-31 09:28 169 查看
1、如何判断ScrollView是否已经滑动到了最底部?

public class MainActivity extends Activity implements OnTouchListener{

private ScrollView scrollView;
private TextView textView;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_main);

scrollView = (ScrollView) findViewById(R.id.id_scroll);
textView = (TextView) findViewById(R.id.id_texvview);

scrollView.setOnTouchListener(this);
}

@Override
public boolean onTouch(View v, MotionEvent event) {

switch (event.getAction()) {

case MotionEvent.ACTION_UP:

Log.i("ScrollView", "getMeasuredHeight:"+scrollView.getChildAt(0).getMeasuredHeight());
Log.i("ScrollView", "getScrollY:"+scrollView.getScrollY());
Log.i("ScrollView", "getHeight:"+scrollView.getHeight());

if (scrollView.getScrollY() == 0) {
Toast.makeText(MainActivity.this, "已到顶部", Toast.LENGTH_SHORT).show();
}
if (scrollView.getChildAt(0).getMeasuredHeight() <= scrollView.getScrollY() + scrollView.getHeight()){
//Log.i("ScrollView", scrollView.getChildAt(0).getMeasuredHeight());
Log.i("ScrollView", "getMeasuredHeight:"+scrollView.getChildAt(0).getMeasuredHeight());
Log.i("ScrollView", "getScrollY:"+scrollView.getScrollY());
Log.i("ScrollView", "getHeight:"+scrollView.getHeight());

Toast.makeText(MainActivity.this, "下拉加载更多", Toast.LENGTH_SHORT).show();
textView.append(getResources().getString(R.string.scroll_content));
}
break;

default:
break;
}
return false;
}
}


上述代码中,
scrollView.getScrollY() == 0
用于判断ScorllView是否滑动到了顶部,
scrollView.getChildAt(0).getMeasuredHeight() <= scrollView.getScrollY() + scrollView.getHeight()
用于判断 ScorllView 是否滑动到了底部,其中
scrollView.getChildAt(0).getMeasuredHeight()
为 ScorllView 的内容高度,
scrollView.getScrollY()
为滚动条滑动距离,
scrollView.getHeight()
为 ScorllView 本身高度(同一机型该值为一固定值)。

参考

1、http://blog.sina.com.cn/s/blog_4ad7c2540102vrd8.html

2、http://www.cnblogs.com/popfisher/p/5709202.html

3、http://www.aichengxu.com/view/1424006
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: