You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何居中AppBar并保持背景与子组件同宽?

解决Flutter导航栏居中且模糊背景贴合子组件的问题

直接修改AppBar的title布局,通过Center组件包裹模糊背景容器,同时给内部内容添加内边距,即可实现居中且背景尺寸与子组件一致的效果:

return Scaffold(
  extendBodyBehindAppBar: true,
  backgroundColor: Colors.grey,
  appBar: AppBar(
    elevation: 0,
    backgroundColor: Colors.transparent,
    title: Center(
      child: ClipRRect(
        borderRadius: const BorderRadius.all(Radius.circular(FizzinConstants.radius)),
        child: BackdropFilter(
          filter: ImageFilter.blur(
            sigmaX: 15.0,
            sigmaY: 25.0,
          ),
          child: Padding(
            // 调整内边距控制背景的留白大小
            padding: const EdgeInsets.symmetric(horizontal: 16, vertical: 8),
            child: Row(
              mainAxisAlignment: MainAxisAlignment.center,
              crossAxisAlignment: CrossAxisAlignment.center,
              mainAxisSize: MainAxisSize.min,
              children: [
                GestureDetector(
                  child: const Text("按钮1"),
                  onTap: () {},
                ),
                const SizedBox(width: 20), // 两个按钮间的间距
                GestureDetector(
                  child: const Text("按钮2"),
                  onTap: () {},
                ),
              ],
            ),
          ),
        ),
      ),
    ),
  ),
);

关键修改说明:

  • Center组件:让带模糊背景的容器在AppBar的title区域内居中,避免默认左对齐或撑满宽度的问题。
  • Padding组件:给模糊背景添加合适的内边距,既让文字不贴边,也让背景尺寸刚好包裹住两个按钮的内容。
  • mainAxisSize: MainAxisSize.min:确保Row仅占用子组件所需的宽度,不会强行扩展撑满屏幕。

内容的提问来源于stack exchange,提问作者Seb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 14:52:05