您的位置:首页 > 其它

ScrollView

2016-06-05 00:04 190 查看
实现页面滚动效果。

纵向滑动:ScrollView

横向滑动:HorizontalScrollView

android:scrollbars=”none” 属性隐藏全部滚动条,也可以设置vertical或horizontal来隐藏对应的滚动条。

还可以在代码中设置:

setHorizontalScrollBarEnabled(false);
setVerticalScrollBarEnabled(false);


XML:

<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:scrollbars="none"><!--隐藏滚动条-->

<TextView
android:id="@+id/tv"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</ScrollView>


JAVA:

public class MainActivity extends AppCompatActivity {
private TextView tv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv= (TextView) findViewById(R.id.tv);
tv.setText(getResources().getString(R.string.content));
}
}


scrollTo和sxrollBy

//scrollTo以滚动视图起始位置开始计算

//scrollBy相对前一次的位置,滚动相应距离

scrollview位置的判断:

scroll.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()){
case MotionEvent.ACTION_MOVE: {
/***
* 1、getScrollY()获取滚动条滑动的距离
* 2、getMeasuredHeight()获取完整内容的高度
* 3、getHeight()获取屏幕的高度
*/
//判断顶部状态
if (scroll.getScrollY() <= 0) {
Log.i("Main", "顶部");
}
//判断底部状态
//TextView的总高度<=整屏高度+滚动条滚动的距离
if (scroll.getChildAt(0).getMeasuredHeight() <=
scroll.getHeight() + scroll.getScrollY()) {
Log.i("Main", "滑动到底部");
Log.i("Main","scroll.getChildAt(0).getMeasuredHeight()="+scroll.getChildAt(0).getMeasuredHeight()
+"Scroll.getHeight()="+scroll.getHeight()+"Scroll.getScrollY()="+scroll.getScrollY());
//当滑动到底部时,再次添加文本
tv.append(getResources().getString(R.string.content));
}

break;
}
}
return false;
}
});


添加两个按钮通过点击事件控制页面滚动

@Override
public void onClick(View v) {
switch (v.getId()){
//scrollTo以滚动视图起始位置开始计算
//scrollBy相对前一次的位置,滚动相应距离
case R.id.btn_up:
scroll.scrollBy(0,-300);
break;
case R.id.btn_down:
scroll.scrollBy(0,300);
break;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  scrollview