Autocomplete组件内ListView.builder占用多余空白空间问题求解
问题原因
Flutter的ListView组件默认自带适配系统安全区域的内边距规则,未手动指定padding属性时,ListView会自动读取当前上下文的MediaQuery数据,在列表顶部添加对应状态栏高度的空白内边距,这就是多余空白的来源。
修复方案
给ListView.builder显式设置padding属性为EdgeInsets.zero即可消除默认顶部空白,修改后的代码片段如下:
child: ListView.builder( padding: EdgeInsets.zero, // 新增该行消除默认内边距 shrinkWrap: true, itemCount: rise.length, itemBuilder: (BuildContext context, index){ return GestureDetector( onTap: () { onSelected(rise[index]); }, child: ListTile( title: Text(rise[index]), ), ); }, )
补充说明:后续使用GridView、CustomScrollView等滚动类组件时如果遇到类似莫名顶部空白问题,都可以优先通过设置padding: EdgeInsets.zero排查是否为默认内边距导致的问题。
内容的提问来源于stack exchange,提问作者IcyHerrscher
相关产品推荐
相关产品推荐

