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

Flutter应用中AppBar与搜索按钮不显示问题求助

Flutter组件不显示问题修复方案

问题根源

  • TPrimaryHeaderContainer未渲染传入的子组件:你的TPrimaryHeaderContainer里的Stack仅添加了两个圆形装饰组件,完全没把构造函数传入的child放进Stack的children列表,导致所有添加到该容器下的内容根本不会被渲染。
  • THomeBar代码错误:你粘贴的THomeBar代码和HomeScreen完全重复,这是明显的粘贴失误,THomeBar应该是你要实现的顶部导航栏/搜索按钮组件,而非重复的页面结构。

修复步骤

1. 修复TPrimaryHeaderContainer

修改TPrimaryHeaderContainer的build方法,将child加入Stack的children中。若要让子组件在圆形装饰上方显示,把它放在children的最后即可:

class TPrimaryHeaderContainer extends StatelessWidget {
  const TPrimaryHeaderContainer({
    super.key, required this.child,
  });

  final Widget? child;

  @override
  Widget build(BuildContext context) {
    return TCurvedEdgeWidget(
      child: Container(
        color: TColors.primary,
        padding: const EdgeInsets.all(0),
        child: SizedBox(
          height: 400,
          child: Stack(
            children: [
              // 圆形装饰组件
              Positioned(top: -150, right: -250, child: TCircularWidget(background: TColors.textWhite.withOpacity(0.1))),
              Positioned(top: 100, right: -300, child: TCircularWidget(background: TColors.textWhite.withOpacity(0.1))),
              // 加入传入的子组件,确保可见
              if (child != null) child!,
            ],
          ),
        ),
      ),
    );
  }
}

2. 修正THomeBar组件

替换错误的THomeBar代码,实现一个包含搜索按钮的顶部栏示例:

class THomeBar extends StatelessWidget {
  const THomeBar({super.key});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(horizontal: TSizes.defaultSpace),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.spaceBetween,
        children: [
          // 标题或logo
          const Text("首页", style: TextStyle(color: Colors.white, fontSize: 20, fontWeight: FontWeight.bold)),
          // 搜索按钮
          IconButton(
            icon: const Icon(Icons.search, color: Colors.white),
            onPressed: () {
              // 这里添加搜索逻辑
            },
          ),
        ],
      ),
    );
  }
}

3. 验证效果

修改后重新运行项目,THomeBar及其他添加到TPrimaryHeaderContainer下的子组件应该会正常显示在顶部容器中。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 21:33:29