ScrollView同步滚动不流畅

夜魅斯幻 2018-01-22 02:49:05


就是我想做一个表格,然后发现两个HorizontalScrollView不是很同步

hhsv.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
hsv.scrollTo(scrollX,scrollY);
}
});
hsv.setOnScrollChangeListener(new View.OnScrollChangeListener() {
@Override
public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
hhsv.scrollTo(scrollX,scrollY);
}
});

用的这种方法,是不是应该重写touchevent之类的会比较同步
还有,我这样弄表格可以么,有没有更好的方法
...全文
1113 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Smoyan_ 2018-01-29
  • 打赏
  • 举报
回复
引用 5 楼 yemeisihuan 的回复:
[quote=引用 4 楼 u012761076 的回复:] 监听是回调,你在回调中处理,当然同步不了了,因为一个已经滚动了然后才回调方法接着滚动另外一个。 可以重写onTouchEvent事件,在那里面监听触摸滑动事件,然后同时调用scroll滚动
谢谢,试了一下确实完美同步,可是惯性滑动不知道怎么解决

@Override
    public boolean onTouchEvent(MotionEvent ev) {
        boolean b = super.onTouchEvent(ev);
        shsv.scrollTo(getScrollX(), 0);
        return b;
    }
[/quote] 你不能直接在 onTouchEvent接收所有的事件呀,这样所有的触摸事件都会造成滚动 你应该在MotionEvent.ACTION_MOVE的时候,move了多少就滚动多少 例如这样: @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_DOWN: 记录下触摸按下的时候的位置 break; case MotionEvent.ACTION_MOVE: 与触摸按下时候的位置比较,变化多少就滑动多少 break; case MotionEvent.ACTION_UP: 滑动停止 break; } return super.onTouchEvent(event); }
夜魅斯幻 2018-01-25
  • 打赏
  • 举报
回复
引用 4 楼 u012761076 的回复:
监听是回调,你在回调中处理,当然同步不了了,因为一个已经滚动了然后才回调方法接着滚动另外一个。 可以重写onTouchEvent事件,在那里面监听触摸滑动事件,然后同时调用scroll滚动
谢谢,试了一下确实完美同步,可是惯性滑动不知道怎么解决

@Override
    public boolean onTouchEvent(MotionEvent ev) {
        boolean b = super.onTouchEvent(ev);
        shsv.scrollTo(getScrollX(), 0);
        return b;
    }
夜魅斯幻 2018-01-23
  • 打赏
  • 举报
回复
引用 1 楼 jklwan 的回复:
表格使用recyclerView做效果好些。
用的就是recyclerView啊
jklwan 2018-01-23
  • 打赏
  • 举报
回复
表格使用recyclerView做效果好些。
Smoyan_ 2018-01-23
  • 打赏
  • 举报
回复
监听是回调,你在回调中处理,当然同步不了了,因为一个已经滚动了然后才回调方法接着滚动另外一个。 可以重写onTouchEvent事件,在那里面监听触摸滑动事件,然后同时调用scroll滚动
jklwan 2018-01-23
  • 打赏
  • 举报
回复
引用 2 楼 yemeisihuan 的回复:
用的就是recyclerView啊
只需要一个HorizontalScrollView加上recyclerView就行了,这么多嵌套没意义,每行都是一个item就行了。

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧