uniapp框架下scroll-view使用注意事项

        在开发蓝牙调试app的过程,需要显示接收到的蓝牙硬件信息,主要需求是要求新收到的信息能够显示到显示区域。

如上图所示,第一个框为接受信息显示框,显示框在每次接收到信息化后自动向上滚动,以便显示最近收到的信息。  详细代码如下:      

<scroll-view :scroll-with-animation="true" style="width:80%;margin-left:10%;height:55vh; border:1px solid #30a2a4;border-radius:5px;" :scroll-y="true"  :scroll-into-view="scrollIntoViewId">
        <view v-for="(item, index) in printInfo" :id="'scroll'+index" style="width:100%;margin-left:0px;">
            <textarea v-model="item.value" auto-height style="width:100%;height:auto;border:0;"></textarea>
        </view>
        <view id="scrollBottom" style="margin-left:0px;width:99%;height:30px;"></view>
    </scroll-view>

有几个注意的点,记录一下:

1、不滚动

处理:需要在scroll-view上加上属性 :scroll-with-animation="true"

2、每次滚动,只滚动到view的上边线,不显示内容

处理:需要在最后面加上一个空的view, 即:<view id="scrollBottom" style="margin-left:0px;width:99%;height:30px;"></view>

其他,具体滚动到那个view,只需要在js代码中控制变量“scrollIntoViewId”的值

### 解决 UniApp 中 Swiper 和 Scroll-View 组合使用时的闪屏问题 在开发过程中遇到的闪屏现象通常由多种因素引起。当 `swiper` 和 `scroll-view` 结合使用时,尤其是在不同平台上的表现差异可能导致视觉效果不佳。 #### 优化方案一:替换组件结构 考虑到 iOS 设备上 `scroll-view` 的性能瓶颈[^1],建议采用更高效的替代方案来改善用户体验。具体来说: - **使用 `swiper` 替代 `scroll-view`**:对于需要实现滑动切换功能的部分,可以考虑完全移除 `scroll-view` 并改用 `swiper` 来处理内容展示逻辑。这不仅能够提升交互流畅度,还能减少因嵌套复杂布局带来的潜在问题。 ```html <template> <view class="container"> <!-- 使用 swiper 实现横向卡片翻页 --> <swiper :current="currentIndex" @change="onChangeSwiperIndex"> <swiper-item v-for="(item, index) in items" :key="index"> <view class="card">{{ item }}</view> </swiper-item> </swiper> <!-- 如果确实需要用到纵向滚动,则单独设置一个外部包裹层 --> <scroll-view scroll-y style="height: calc(100vh - 200rpx)"> <view>其他可滚动的内容</view> </scroll-view> </view> </template> ``` #### 优化方案二:调整加载策略与渲染方式 为了进一步缓解可能出现的闪屏情况,还可以通过改进数据获取及视图更新的方式来进行优化: - **延迟加载图片和其他重资源**:确保只有当前可见区域内才会去请求并显示图像或其他大型文件; - **分批异步渲染大量子项**:如果是用来呈现较长列表的话,推荐利用框架自带的支持虚拟化列表特性的组件如 `list` 或者第三方库(例如 uParse),它们可以在不牺牲太多灵活性的前提下显著提高效率[^2]; #### 额外注意事项 另外需要注意的是应用启动过程中的空白屏幕时间过长也可能间接影响整体体验感,因此应当合理配置 Splash 页面以及首屏加载速度以降低此类风险[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

magic33416563

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值