###0.前言
在Android开发时,如果需要处理滑动事件,通常会使用到getScrollX()
和getScrollY()
方法。如果需要自定义滑动操作,会使用到scrollTo(...)
和scrollBy(...)
。下面记录它们之间的使用区别。
- mScrollX:View的内容(content)相对于View本身在水平方向的偏移量。
- mScrollY::View的内容(content)相对于View本身在垂直方向的偏移量。
- scrollTo(int x, int y):将一个视图的内容移动到指定位置.此时偏移量 mScrollX,mScrollY就分别等于x,y.
- scrollBy(int x, int y): 在现有的基础上继续移动视图的内容.
对于ViewGroup来说:
移动的是它对应的所有子View。
注意:scrollTo()和scrollBy()移动的只是View的内容,但是View的背景是不移动的.
###1.详细说明
2.我们看一下onClick方法是如何实现的。
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.leftButton:
//让mTextView的内容往左移
mTextView.scrollBy(30, 0);
//让mLeftButton的内容也往左移
mLeftButton.scrollBy(20, 0);
break;
case R.id.rightButton:
//让mTextView的内容往右移直接到-30的位置
mTextView.scrollTo(-30, 0);
break;
default:
break;
}
}
了解完Scroller对VIew的使用,我们来看一下Scroller对ViewGroup的使用。
- 先看一下效果
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mLinearLayout = (LinearLayout) findViewById(R.id.linearLayout);
mButton = (Button) findViewById(R.id.button);
mButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
// 将整个ViewGroup布局向右移动50个像素
mLinearLayout.scrollBy(-50, 0);
}
});
}
为什么-50就是向右呢?为了更好的让你理解,请看下面的这张图
转载自:
https://blog.csdn.net/wuchuang127/article/details/39472493
END
–Nowy
–2019.02.11