ScrollView
Posted 故意的是吧
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ScrollView相关的知识,希望对你有一定的参考价值。
实现页面滚动效果。
纵向滑动: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的主要内容,如果未能解决你的问题,请参考以下文章