Flutter中如何重写ExpansionPanel将其默认elevation设置为0
Flutter 移除ExpansionPanel阴影操作指南
ExpansionPanel的阴影不支持在单个组件上单独设置,需要通过父级ExpansionPanelList统一配置,两种适配方案如下:
方案1:直接配置属性(支持Flutter 2.10及以上版本)
给ExpansionPanelList同时设置收起、展开两种状态下的阴影高度为0即可:
ExpansionPanelList( // 面板收起时的阴影高度 elevation: 0, // 面板展开时的阴影高度 expandedElevation: 0, // 可选:如果需要隐藏面板间的分割线,追加下方配置 dividerColor: Colors.transparent, // 其余原有配置保持不变 expansionCallback: (index, isExpanded) { // 你的展开收起逻辑 }, children: yourPanelList, )
方案2:Theme局部覆盖(支持所有Flutter版本)
低版本Flutter未开放ExpansionPanelList的elevation配置时,可以通过覆盖组件范围内的CardTheme实现效果:
Theme( data: Theme.of(context).copyWith( cardTheme: const CardTheme( elevation: 0, shadowColor: Colors.transparent, ), ), child: ExpansionPanelList( // 你的原有配置 ), )
你需要移除的默认阴影效果参考:
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

