收藏
回答

关于scrollview联动的问题

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 需求 scroll-view 客户端 Android 6.6.7 2.1.0

- 需求的场景描述(希望解决的问题)

有两个scroll-view,左边scroll-view是菜品类目,右边scroll-view是菜单,右边scroll-view滑动的时候,需要实时计算当前滑动到哪个菜品,然后对应的滑动左侧类目,并选中当前所在的类目,实际情况是通过查看日志发现类目计算正确setData也都正常,从js执行中来看是很正常的,但是界面的更新就很慢,滑动稍微快点就会造成虽然类目计算并设值正确了,但是渲染跟不上,右侧菜单已停止滑动,过了一两秒甚至更长时间左侧类目才会更新,给人的感觉就是会乱跳


ps:苹果手机正常,android手机会出现这种问题


- 希望提供的能力

针对这种情况,官方有什么建议或其它解决方案吗


回答关注问题邀请回答
收藏

2 个回答

  • Code Weaver
    Code Weaver
    2018-06-29

    感觉 这种交互 就不合理

    2018-06-29
    有用
    回复 4
    • Mango.M
      Mango.M
      2018-06-29

      需求就是左右两侧要联动,有其它更好的方案吗

      2018-06-29
      回复
    • Code Weaver
      Code Weaver
      2018-06-29回复Mango.M

      不可以左侧点击后右侧显示? 非要滚动么。他那个检测滚动高度那个方法 在开发者工具上不太行。在手机上正常。

      2018-06-29
      回复
    • Mango.M
      Mango.M
      2018-06-29回复Code Weaver

      可以的话就没这么多问题了


      2018-06-29
      回复
    • Code Weaver
      Code Weaver
      2018-06-29

      谁提的交互。你跟他说明啊,不能一直卡在这个地方吧?降级方案 都没有?

      2018-06-29
      回复
  • 冬雪飘零bin
    冬雪飘零bin
    2018-06-29

    有代码片段吗,或许可以改造改造的

    2018-06-29
    有用
    回复 2
    • Mango.M
      Mango.M
      2018-06-29

      这是右边scroll-view的滑动回调


      for (var i = 0; i < this.data.goods.length; i++) {
            this.count++;
            console.log("计算次数:" + this.count);
            if (scrollTop >= this.data.goods[i].top && scrollTop < this.data.goods[i].bottom) {
              if (this.data.selectedMenu != i) {
                this.setData({
                  selectedMenu: i,
                  toView: '',
                  scrollTop: i * this.menuHeight,
                });
                console.log("currentMenu:" + this.data.selectedMenu);
              }
              break;
            }
          }



      这是左侧scroll-view

      <scroll-view scroll-y="true" style="height: 940rpx;" scroll-with-animation="true" scroll-top="{{scrollTop}}">
              <block wx:for="{{menus}}" wx:key="unique">
                <view class='menu-item' style='background:{{selectedMenu == index ? "#ffffff" : "#f3f5f7"}}' bindtap="selectMenu" data-item-index="{{index}}">
                  <view class="text">
                    {{item}}
                  </view>
                  <!-- <view wx:if="{{item.count > 0}}" class='num'>{{item.count}}</view> -->
                </view>
              </block>
            </block>
          </scroll-view>


      2018-06-29
      回复
    • 2018-11-30

      请问这问题,最终怎么解决呢

      2018-11-30
      回复
登录 后发表内容