我想实现一个功能上面一个布局是ScrollView里面嵌套一个HorizontalScrollView实现水平滚动 在这个布局下面也有一个ScrollView里面嵌套一个HorizontalScrollView的布局 实现上下左右滚动 我现在想实现的是 当上面的布局水平滚动的时候 下面的也跟着水平滚动 或者 下面的水平滚动 上面的也跟着水平滚动 就是实现联动的效果 请问怎么实现

package com.car;
import android.app.Activity;
import android.os.Bundle;
/**
* 仿写汽车之家首页效果
*/
public class MainActivity extends Activity implements ScrollViewListener, HorizontalScrollViewListener {
private MyScrollView scrollView1 = null;
private MyScrollView scrollView2 = null;
private MyScrollView scrollView3 = null;
private MyHorizontalScrollView horizontalScrollView1 = null;
private MyHorizontalScrollView horizontalScrollView2 = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
scrollView1 = (MyScrollView) findViewById(R.id.scrollview1);
scrollView1.setScrollViewListener(this);
scrollView2 = (MyScrollView) findViewById(R.id.scrollview2);
scrollView3 = (MyScrollView) findViewById(R.id.scrollview3);
horizontalScrollView1 = (MyHorizontalScrollView) findViewById(R.id.MyHorizontalScrollView1);
horizontalScrollView2 = (MyHorizontalScrollView) findViewById(R.id.MyHorizontalScrollView2);
scrollView2.setScrollViewListener(this);
}
@Override
public void onScrollChanged(MyScrollView scrollView, int x, int y, int oldx, int oldy) {
if (scrollView == scrollView1) {
scrollView2.scrollTo(x, y);
} else if (scrollView == scrollView2) {
scrollView1.scrollTo(x, y);
scrollView3.scrollTo(x,y);
}
}
@Override
public void onScrollChanged(MyHorizontalScrollView scrollView, int x, int y, int oldx, int oldy) {
if(scrollView == horizontalScrollView1){
horizontalScrollView2.scrollTo(x,y);
}else if(scrollView == horizontalScrollView2){
horizontalScrollView1.scrollTo(x,y);
}
}
}
现竖直滚动可以联动 但是水平的不能
------解决思路----------------------
把所有的HorizontalScrollView加入到一个集合里面,然后监控手势滑动的参数,然后让集合里面的HorizontalScrollView跟着一起滚动。可以看下控件的scrollBy(),scrollTo()这些方法。
------解决思路----------------------
如果你是平行滑动的话,为什么不把两个横向的布局放到一个scroll里呢?如果不是平行滑动,就根据你自己的要求计算滑动尺度