鸿蒙审核问题——Scroll中嵌套了List/Grid时滑动问题
文章目录
- 背景
- 原因
- 解决办法
- 1、借鉴Flutter中的解决方式,如下图
- 2、鸿蒙Next中对应的解决方式,如下图
- 3、官方文档
背景
来源一次审核被拒的情况。也是出于粗心导致的。之前在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 时,会造成一个问题,如果list、grid 滑动到顶部时,会造成只能在list、grid内部滑动,上面的内容看不到了。
解决办法
只让主Scroll可以滚动,接收手势;内的list、grid不能支持滑动,不接受滚动手势即可。下面先是回忆了flutter中的解决方法,然后对着找到鸿蒙NEXT中的解决方式,并且有官方文档作证,应该是无疑了。
1、借鉴Flutter中的解决方式,如下图
- 代码
CustomScrollView(slivers: [
SliverToBoxAdapter(child:GridView.builder(padding: EdgeInsets.symmetric(horizontal: 12.w),shrinkWrap: true,physics: NeverScrollableScrollPhysics(),...))])
2、鸿蒙Next中对应的解决方式,如下图
- 代码
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、官方文档
参考文档