Android Scroller入门(一)之ScrollTo、ScrollBy(转)

###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的使用。

  1. 先看一下效果

整体移动例子

@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就是向右呢?为了更好的让你理解,请看下面的这张图

Scroller坐标

转载自:
https://blog.csdn.net/wuchuang127/article/details/39472493

END

–Nowy

–2019.02.11

分享到