如何移除SliverAppBar左侧导航图标?设置leading为null无效
解决SliverAppBar左侧汉堡图标无法移除的问题
问题根源是:当页面外层Scaffold设置了drawer属性时,即便给SliverAppBar的leading设为null,Flutter仍会自动生成汉堡菜单图标——因为automaticallyImplyLeading默认值为true,它会根据drawer的存在自动填充左侧的leading组件。
两种解决方式:
方式一:不需要抽屉的情况
直接删除外层Scaffold中的drawer参数,SliverAppBar就不会自动生成汉堡图标。方式二:需要保留抽屉但隐藏图标
给SliverAppBar添加automaticallyImplyLeading: false属性,同时保持leading: null(或不写leading参数),就能彻底隐藏左侧图标。
修改后的核心代码片段
CustomScrollView( slivers: [ SliverAppBar( backgroundColor: const Color.fromARGB(255, 214, 212, 209), expandedHeight: 270, floating: true, pinned: false, leading: null, // 新增这行关键代码 automaticallyImplyLeading: false, flexibleSpace: FlexibleSpaceBar( background: Padding( padding: const EdgeInsets.all(20), child: Column( mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( "Board", style: GoogleFonts.montserrat(fontSize: 25), ), const SizedBox(height: 10), _buildSearchTextFormField(), const SizedBox(height: 10), Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( "Status", style: GoogleFonts.montserrat(fontSize: 18), ), GestureDetector( onTap: () {}, child: const Icon(CupertinoIcons.slider_horizontal_3), ) ], ), const SizedBox(height: 10), _buildStatusList(), ], ), ), ), ), // 下方SliverToBoxAdapter部分代码保持不变 ... ], )
内容的提问来源于stack exchange,提问作者Hamou Ouyaba
相关产品推荐
相关产品推荐

