HarmonyOS 鸿蒙Next Swiper只有两个子组件时,上滑上一页时会出现空白

HarmonyOS 鸿蒙Next Swiper只有两个子组件时,上滑上一页时会出现空白

bug:Swiper只有两个子组件时,上滑上一页时会出现空白

代码

@Entry
@Component
struct FunctionalLattice {
  
  build() {  
    // bug:Swiper只有两个子组件时,上滑上一页时会出现空白  
    Swiper() {  
      Text('789')  
        .textAlign(TextAlign.End)  
        .width('100%')  
        .backgroundColor(Color.Red)

      Text('7890')  
        .width('100%')  
        .backgroundColor(Color.Yellow)  
        .textAlign(TextAlign.End)  
    } 
    .autoPlay(false)  
    .backgroundColor(Color.Green)  
    .height(500).width('100%')  
  }  
}

问题现象:上滑上一页时会出现Swiper背景色,Swiper有三个子组件时没有此问题

image


更多关于HarmonyOS 鸿蒙Next Swiper只有两个子组件时,上滑上一页时会出现空白的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

真机调试不会有这种问题

更多关于HarmonyOS 鸿蒙Next Swiper只有两个子组件时,上滑上一页时会出现空白的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


您好,我是预览没问题,模拟器上会有这个现象,请问怎么解决啊?

OK,我测试一下,谢谢

预览和模拟器都有这个问题,请问真机是正常的吗?

您好,该问题已反馈给相关部门人员,感谢您的反馈。

在HarmonyOS鸿蒙Next中,当Swiper组件只有两个子组件时,用户上滑切换到上一页时可能会出现空白页面的情况。这是由于Swiper组件的默认行为在处理少于三个子组件时,可能会导致页面切换逻辑出现问题。Swiper组件在设计上通常假设有多个页面可供切换,当页面数量较少时,其循环滚动的逻辑可能无法正确处理边缘情况。

具体来说,Swiper组件在默认情况下会尝试循环滚动,但当只有两个子组件时,切换到上一页时可能会出现空白,因为组件无法正确地回滚到前一个页面。这种情况下,Swiper组件的内部状态管理可能无法正确处理页面的索引,导致页面显示异常。

为了解决这个问题,开发者可以通过设置Swiper组件的loop属性为false,禁用循环滚动功能。这样可以避免在只有两个子组件时出现空白页面的问题。另外,开发者也可以考虑在只有两个子组件时,手动调整Swiper组件的页面切换逻辑,确保页面切换时不会出现空白。

总结来说,HarmonyOS鸿蒙Next中的Swiper组件在只有两个子组件时,上滑切换到上一页可能会出现空白页面,这是由于Swiper组件的默认循环滚动逻辑在处理较少页面时的问题。通过禁用循环滚动或手动调整页面切换逻辑,可以避免这一现象。

回到顶部