Dd_CcwW 2024-09-18 11:43 采纳率: 0%
浏览 9

关于#flutter#的问题:这个TabBar前面会留下一个空位

这个TabBar前面会留下一个空位,而且下方也会有一条线。可是我没有设置啊。
下面是我的代码

img

import 'package:flutter/material.dart';

class Home extends StatefulWidget {
  const Home({super.key});

  @override
  State<Home> createState() => _HomeState();
}

class _HomeState extends State<Home> with SingleTickerProviderStateMixin {
  late TabController _tabController;

  @override
  void initState() {
    super.initState();
    _tabController = TabController(length: 9, vsync: this);
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: PreferredSize(
        preferredSize: const Size.fromHeight(40.0),
        child: AppBar(
          backgroundColor: const Color.fromRGBO(255, 255, 255, 1),
          elevation: 0,
          title: Container(
            height: 30,
            padding: EdgeInsets.zero, // 移除容器的内边距
            child: TabBar(
              labelColor: Colors.red,
              unselectedLabelColor: Colors.black,
              indicatorSize: TabBarIndicatorSize.label,
              indicatorColor: Colors.red,
              indicatorPadding: EdgeInsets.zero, // 移除指示器的内边距
              isScrollable: true,
              controller: _tabController,
              //labelPadding: EdgeInsets.zero, // 移除标签的内边距
              tabs: const [
                Tab(
                  child: Text("热门"),
                ),
                Tab(
                  child: Text("关注"),
                ),
                Tab(
                  child: Text("其他"),
                ),
                Tab(
                  child: Text("热门"),
                ),
                Tab(
                  child: Text("关注"),
                ),
                Tab(
                  child: Text("其他"),
                ),
                Tab(
                  child: Text("热门"),
                ),
                Tab(
                  child: Text("关注"),
                ),
                Tab(
                  child: Text("其他"),
                ),
              ],
            ),
          ),
        ),
      ),
      body: TabBarView(
        controller: _tabController,
        children: const [
          Text("我是"),
          Text("我是"),
          Text("我是"),
          Text("我是"),
          Text("我是"),
          Text("我是"),
          Text("我是"),
          Text("我是"),
          Text("我是"),
        ],
      ),
    );
  }
}


  • 写回答

1条回答 默认 最新

  • 一轮明月照丘壑 2024-09-18 18:52
    关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从您提供的代码和描述来看,您遇到的问题可能与TabBar的样式或布局有关。关于您提到的空位和线的问题,这可能是由几个因素造成的。让我们逐一分析并尝试解决这些问题:

    1. 空位问题:

      • 您的代码中没有明显的逻辑会导致TabBar前面出现空位。这可能是由其他因素引起的,比如AppBar的高度或容器的大小。您可以尝试调整AppBar的高度或容器的布局属性,看看是否能解决这个问题。
    2. 下方线条问题:

      • 这可能是TabBar的底部边框或其他样式造成的。您可以尝试调整TabBar的样式属性,比如设置bottomIndicatorColorbottomIndicatorSize为透明或适当的大小来消除这条线。此外,检查其他可能影响此问题的样式属性。

    针对上述问题,您可以尝试以下解决方案:

    1. 调整AppBar的高度和布局属性,确保没有多余的空位。您可以尝试移除或调整Container的大小和布局属性。
    2. 调整TabBar的样式属性,特别是底部边框的颜色和大小。尝试将bottomIndicatorColor设置为透明或调整其大小。

    下面是修改后的代码示例:

    // ... 其他代码保持不变 ...
    
    TabBar(
      labelColor: Colors.red,
      unselectedLabelColor: Colors.black,
      indicatorSize: TabBarIndicatorSize.label, // 可以尝试调整此属性的大小或颜色
      indicatorColor: Colors.red, // 设置指示器的颜色为红色
      indicatorPadding: EdgeInsets.zero, // 确保指示器没有额外的内边距
      bottomIndicatorColor: Colors.transparent, // 设置底部边框为透明,消除线条问题
      isScrollable: true,
      controller: _tabController,
      tabs: const [
        // ... 标签列表保持不变 ...
      ],
    ),
    ```这些修改可能会帮助您解决问题。如果问题仍然存在,请提供更多关于您的布局和样式的详细信息,以便更好地帮助您找到解决方案。
    
    评论

报告相同问题?

问题事件

  • 创建了问题 9月18日

悬赏问题

  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见
  • ¥15 一共有五道问题关于整数幂的运算还有房间号码 还有网络密码的解答?(语言-python)
  • ¥20 sentry如何捕获上传Android ndk 崩溃
  • ¥15 在做logistic回归模型限制性立方条图时候,不能出完整图的困难
  • ¥15 G0系列单片机HAL库中景园gc9307液晶驱动芯片无法使用硬件SPI+DMA驱动,如何解决?