鸿蒙审核问题——Scroll中嵌套了List/Grid时滑动问题 原创 精华

前端森之鸟
发布于 2025-9-11 19:15
浏览
0收藏

@TOC


背景

来源一次审核被拒的情况。也是出于粗心导致的。之前在flutter项目中也是遇到过这种问题的。其实就是滚动视图内嵌滚动视图造成的,主视图滚动时,带动子视图滚动,当子视图贴到导航条时,有个默认效果滚动视图会贴在导航栏底部,导致主视图的列表,拉不下了。下面的Gif中效果很明显。

通过给的反馈视频中,一目了然。只是当时开发的时候,刚好手机没有出现这种情况,所以没有做出处理。也许这和机型和系统有关系,目前我使用的是最新版本的6.0.0bate版本,审核用的是5.1.0版本。

审核反馈的信息如下:
测试步骤:首页-进入传统节日模块后无法查看上方内容。
修改建议:请进行优化修复,确保应用可正常使用。
您可参考《审核指南》第3.1项:https://developer.huawei.com/consumer/cn/doc/app/50104-03
WIFI联网、HarmonyOS5.1.0(HUAWEI Pura 80 Pro+)、简体中文环境。

鸿蒙审核问题——Scroll中嵌套了List/Grid时滑动问题-鸿蒙开发者社区

原因

Scroll 里面嵌套 list、grid 时,会造成一个问题,如果list、grid 滑动到顶部时,会造成只能在list、grid内部滑动,上面的内容看不到了。

解决办法

只让主Scroll可以滚动,接收手势;内的list、grid不能支持滑动,不接受滚动手势即可。下面先是回忆了flutter中的解决方法,然后对着找到鸿蒙NEXT中的解决方式,并且有官方文档作证,应该是无疑了。

1、借鉴Flutter中的解决方式,如下图

鸿蒙审核问题——Scroll中嵌套了List/Grid时滑动问题-鸿蒙开发者社区

  • 代码
CustomScrollView(slivers: [
SliverToBoxAdapter(
          child:
    GridView.builder(
        padding: EdgeInsets.symmetric(horizontal: 12.w),
        shrinkWrap: true,
        physics: NeverScrollableScrollPhysics(),
        ...
        )
      )
    ]
  )

2、鸿蒙Next中对应的解决方式,如下图

鸿蒙审核问题——Scroll中嵌套了List/Grid时滑动问题-鸿蒙开发者社区

  • 代码
    Scroll() {
      Column() {
      Grid() {
        ForEach(this.homeFestivals,(item:FestivalModel)=>{
          GridItem(){
            HomeFestivalItem({
              model:item,
              onItemClick:((model:FestivalModel)=>{
                this.navigateToDetail(model);
              })
            })
          }
        })
      }
      .enableScrollInteraction(false)
      .columnsTemplate('1fr 1fr')
      .rowsGap(15)
      .columnsGap(5)
      .padding(20)
      .layoutWeight(1)
      .scrollBar(BarState.Off)
   }
}

3、官方文档

参考文档
鸿蒙审核问题——Scroll中嵌套了List/Grid时滑动问题-鸿蒙开发者社区

回访

截止到今天,也就是贴子的一天后,APP节韵通过了审核,欢迎大家下载试玩。喜欢诗词飞花令的朋友,可以进行挑战一下。
传送门

鸿蒙审核问题——Scroll中嵌套了List/Grid时滑动问题-鸿蒙开发者社区

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2025-9-12 21:36:38修改
收藏
回复
举报
回复
    相关推荐