如何让scrollView每次滚动指定的距离,求大神帮忙

 我来答
静静微740
2016-08-22 · 超过16用户采纳过TA的回答
知道答主
回答量:41
采纳率:100%
帮助的人:32.9万
展开全部
------解决思路----------------------

scrollview 大神
首先要监听ScrollView中手指触摸的事件并截获该事件,不让ScrollView响应它(即不能滚动)。
判断是向上还是向下滚动,然后手动实现滚动,滚动的距离可以手动设置(如一个childView的高度),可以使用scrollTo(x, y),scrollBy(x, y),smoothScrollBy(dx, dy),smoothScrollTo(dx, dy)方法实现滚动。

请大神帮忙p
scroll

------解决思路----------------------

scrollview
scrollto的方法放在scrollview内部的前端运行 也许能快些

scroll lock

------解决思路----------------------
pager.setOnTouchListener(new View.OnTouchListener() {

@Override
public boolean onTouch(View v, MotionEvent event) {
v.getParent().requestDisallowInterceptTouchEvent(true);
return false;
}
});

pager.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
mPager.getParent().requestDisallowInterceptTouchEvent(true);
}

@Override
public void onPageScrollStateChanged(int arg0) {
}
});

------解决思路----------------------
因为,如果根据scrollview1的delegate方法设置scrollview2的contentoffset。设置scorllview2的contentoffset时候会调用scrollview2的delegate方法,而scrollview1又要根据scrollview2同步。所以scrollview2的delegate方法又要根据scrollview2的contentoffset设置scrollview1的contentoffset。如此造成了无限循环。我是用了一个“假同步”,首先我在每个scorllview上放了一个uiview,大小是scrollview的contentsize。然后把scrollview的内容放在了那个uiview上。移动其中一个scrollview时,调整另外的scrollview上的uiview的frame即可。

更多相关内容可参考资料http://www.viiboo.cn
可以叫我表哥
2018-06-28 · 知道合伙人数码行家
可以叫我表哥
知道合伙人数码行家
采纳数:25897 获赞数:1464981
2010年毕业于北京化工大学北方学院计算机科学与技术专业毕业,学士学位,工程电子技术行业4年从业经验。

向TA提问 私信TA
展开全部
CGPoint contentOffset = scrollView.contentOffset;
[scrollView setContentOffset:CGPointMake(contentOffset.x + X, contentOffset.y + Y) animated:YES];

其中X和Y分别是x轴和y轴滚动的距离。

祝你愉快,满意请采纳哦
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
千锋教育
2016-08-22 · 做真实的自己 用良心做教育
千锋教育
千锋教育专注HTML5大前端、JavaEE、Python、人工智能、UI&UE、云计算、全栈软件测试、大数据、物联网+嵌入式、Unity游戏开发、网络安全、互联网营销、Go语言等培训教育。
向TA提问
展开全部
1、ScrollView 的滚动条默认置顶,若想设置它的位置,可以使用mScrollView.smoothScrollTo(x,y)方法,可达到效果。
2、crollTo方法可以调整view的显示位置。在需要的地方调用以下方法即可。
3、scroll表示外层的view,inner表示内层的view,其余内容都在inner里。
注意,方法中开一个新线程是必要的。否则在数据更新导致换行时getMeasuredHeight方法并不是最新的高度。
public static void scrollToBottom(final View scroll, final View inner) {
Handler mHandler = new Handler();
mHandler.post(new Runnable() {
public void run() {
if (scroll == null || inner == null) {
return;
}
int offset = inner.getMeasuredHeight() - scroll.getHeight();
if (offset < 0) {
offset = 0;
}
scroll.scrollTo(0, offset);
}
});
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式