Android Scroller入门(一)之ScrollTo、ScrollBy

本文详细介绍了Scroller类在Android开发中的应用,重点讲述了ScrollTo和ScrollBy两个核心方法,并通过实例展示了如何使用它们来平滑地滚动View和ViewGroup的内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Scroller可以实现对视图View、ViewGroup的滚动,系统提供的很多控件都封装对Scroller的使用,对于Scroller来说有两个重要的方法值得我们去关注,一个是ScrollTo、一个是ScrollBy,准确的来说ScrollBy方法内部使用的也是ScrollTo,然而调用View的ScrollTo或者ScrollBy方法看起来比较僵硬,通常我们会借助Scroller类来达到我们想要的效果,今天我们来学习一下Scroller类的使用。

对于View来说:

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的背景是不移动的.

一个Demo让你彻底理解这两个方法

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坐标,请看下面的这张图



相信经过以上的讲解,你会掌握Scroller类中两个重要的方法ScrollTo、ScrollBy了。
下载Demo请猛戳


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值