------解决思路----------------------
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
CGPoint contentOffset = scrollView.contentOffset;
[scrollView setContentOffset:CGPointMake(contentOffset.x + X, contentOffset.y + Y) animated:YES];
其中X和Y分别是x轴和y轴滚动的距离。
祝你愉快,满意请采纳哦
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);
}
});
}