我想实现一个功能上面一个布局是ScrollView里面嵌套一个HorizontalScrollView实现水平滚动 在这个布局下面也有一个ScrollView里面嵌套一个HorizontalScrollView的布局 实现上下左右滚动 我现在想实现的是 当上面的布局水平滚动的时候 下面的也跟着水平滚动 或者 下面的水平滚动 上面的也跟着水平滚动 就是实现联动的效果 请问怎么实现 package com.car; import android.app.Activity; /** private MyScrollView scrollView1 = null; private MyScrollView scrollView2 = 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); horizontalScrollView1 = (MyHorizontalScrollView) findViewById(R.id.MyHorizontalScrollView1); scrollView2.setScrollViewListener(this); } @Override @Override 现竖直滚动可以联动 但是水平的不能 |
|
package com.car;
import android.content.Context; /** public MyScrollView(Context context) { public MyScrollView(Context context, AttributeSet attrs, int defStyle) { public MyScrollView(Context context, AttributeSet attrs) { public void setScrollViewListener(ScrollViewListener scrollViewListener) { @Override |
|
package com.car;
import android.content.Context; /** public MyHorizontalScrollView(Context context) { public MyHorizontalScrollView(Context context, AttributeSet attrs, int defStyle) { public MyHorizontalScrollView(Context context, AttributeSet attrs) { public void setScrollViewListener(HorizontalScrollViewListener scrollViewListener) { @Override |
|
package com.car;
/** |
|
20分 |
把所有的HorizontalScrollView加入到一个集合里面,然后监控手势滑动的参数,然后让集合里面的HorizontalScrollView跟着一起滚动。可以看下控件的scrollBy(),scrollTo()这些方法。
|
20分 |
如果你是平行滑动的话,为什么不把两个横向的布局放到一个scroll里呢?如果不是平行滑动,就根据你自己的要求计算滑动尺度
|
horizontalScrollView1 = (MyHorizontalScrollView) findViewById(R.id.MyHorizontalScrollView1);
horizontalScrollView2 = (MyHorizontalScrollView) findViewById(R.id.MyHorizontalScrollView2); horizontalScrollView1.setScrollView(horizontalScrollView2); horizontalScrollView2.setScrollView(horizontalScrollView1); |
|
上面的代码可以实现2个horizontalScrollView联动
|