V***@163.com
V***@163.com
  • 发布:2024-03-21 22:08
  • 更新:2024-03-22 16:48
  • 阅读:219

【报Bug】ios端scroll-view开启flex默认flex-direction为column时无法横向滚动(已修复)

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Mac

PC开发环境操作系统版本号: Monterey 12.7

HBuilderX类型: 正式

HBuilderX版本号: 3.99

手机系统: iOS

手机系统版本号: iOS 16

手机厂商: 模拟器

手机机型: Iphone14

页面类型: nvue

vue版本: vue3

打包方式: 云端

项目创建方式: HBuilderX

示例代码:
<view class="container">  
<scroll-view class="scroll-view" scroll-x="true" enable-flex="true" scroll-with-animation="true" @scroll="scrolling" show-scrollbar="false">  
   <view class="menu-item">  
                                <view class="item">  
                    1  
                </view>  
                <view class="item">  
                    2  
                </view>  
                <view class="item">  
                    3  
                </view>  
                <view class="item">  
                    4  
                </view>  
                <view class="item">  
                    5  
                </view>  
                <view class="item">  
                    6  
                </view>  
                <view class="item">  
                    7  
                </view>  
                <view class="item">  
                    8  
                </view>  
                <view class="item">  
                    9  
                </view>  
  </view>  
</scroll-view>  
</view>
    .container{  

    }  

    .scroll-view{  
        background-color: #fff;  
               flex-direction: row;   //必须加这个  
    }  
        .menu-item{  
              height: 100px;             // item 高度和         2行  
          width: 400px;            // item 宽度和           5列  
              flex-wrap: wrap;  
         }  
    .item{  
        height: 50px;  
        width: 80px;  
        border: 1px solid #333;  
    }

操作步骤:

scroll-view 高度是 子view 的倍数,如:一行 父高度100,子高度100,二行 父高度200,子高度100

预期结果:

scroll-view 开启flex,并且设置flex-direction: column ,flex-wrap: wrap时 通过控制子view与父view的高度来实现横向滚动。

实际结果:

安卓端可以,ios端无法滚动。

bug描述:

scroll-view 开启flex,flex-direction 默认为column ,并且已设置flex-wrap: wrap 。安卓可以横向滚动,ios端无法横向滚动。


已修复,代码为修复好的。

2024-03-21 22:08 负责人:无 分享
已邀请:
c***@e-buy.com

c***@e-buy.com

  • V***@163.com (作者)

    谢谢回复,感谢分享。我的问题找出原因啦。


    Flex容器默认flex成员项以 column 排列,我是想通过 flex-wrap 为 wrap这个原理实现,1排多列,或者n排n列。

    
修改办法:

    scroll-view 中 所有子view,用view 包一层并设置宽度为所有子类宽度和,并且把scroll-view组件flex-direction属性手动设置为row。至于您这边1px的占位view,我没用到。

    2024-03-22 21:23

  • c***@e-buy.com

    回复 V***@163.com: 是的,scroll-view添加flex-row样式、内部子元素添加一个flex-row的父容器这种更简单

    2024-03-25 13:40

要回复问题请先登录注册