如何从默认选项卡栏删除底部

Midhilaj

我需要添加一个不带应用程序栏的选项卡栏,并且我从StackOverflow获得了一个解决方案以使用灵活的空间,并且该选项卡正常工作,但是它在选项卡栏底部增加了多余的空间。
如何删除或隐藏它?


我的完整代码

import 'package:flutter/material.dart';

class TemplesListingWithTabMode extends StatefulWidget {
  TemplesListingWithTabMode({Key key}) : super(key: key);

  @override
  _TemplesListingWithTabModeState createState() =>
      _TemplesListingWithTabModeState();
}

class _TemplesListingWithTabModeState extends State<TemplesListingWithTabMode> {
  @override
  Widget build(BuildContext context) {
    return Column(
      children: <Widget>[

        Container(
          height: MediaQuery.of(context).size.height-kToolbarHeight-kMaterialListPadding.top-kTabLabelPadding.top,
          child: DefaultTabController(
            length: 2,
            child: Scaffold(
              appBar: AppBar(
                backgroundColor: Colors.white,
                flexibleSpace: TabBar(
                    indicatorColor: Colors.pink,
                    tabs: [
                  Tab(
                    child: Text("ALL",style: TextStyle(color: Colors.pink),),
                  ),Tab(
                    child: Text("Favorites",style: TextStyle(color: Colors.pink),),
                  )
                ]),
              ),
              body  : Container(
                color: Colors.grey,
                child: TabBarView(

                    children: [
                      ListView.builder(
                          itemCount: 100,
                          itemBuilder: (context,index){
                        return Container(
                          child: Center(
                            child: Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Text("i am $index"),
                            ),
                          ),
                        );
                      }),
                      ListView.builder(
                          itemCount: 5,
                          itemBuilder: (context,index){
                            return Container(
                              child: Center(
                                child: Padding(
                                  padding: const EdgeInsets.all(8.0),
                                  child: Text("i am $index"),
                                ),
                              ),
                            );
                          })
                ]),
              ),
            ),
          ),
        )
      ],
    );
  }
}


Flutter flexibleSpace问题

@Darshan提供的解决方案无法解决我的问题,解决方案是
在SafeArea小部件中包装TabBar。结果是如何从应用程序栏中删除这个小的底部?
在此处输入图片说明

布拉桑卡

原因是AppBar它的大小+状态栏的大小。有多种解决方法。正如其他答案所述,简单的方法是添加SafeArea

请注意,即使在两个标签下,您也会得到难看的很小的空间。

在此处输入图片说明

为了解决您可以使用的问题PreferredSize(还有其他方法)。

在此处输入图片说明

以上屏幕截图的代码:

class _TemplesListingWithTabModeState extends State<TemplesListingWithTabMode> {
  @override
  Widget build(BuildContext context) {
    return DefaultTabController(
      length: 2,
      child: SafeArea(
        child: Scaffold(
          appBar: PreferredSize(
            preferredSize: Size(double.infinity, 60),
            child: TabBar(
                indicatorColor: Colors.pink,
                tabs: [
                  Tab(
                    child: Text("ALL",style: TextStyle(color: Colors.pink),),
                  ),Tab(
                    child: Text("Favorites",style: TextStyle(color: Colors.pink),),
                  )
                ]),
          ),
          body  : Container(
            color: Colors.grey,
            child: TabBarView(

                children: [
                  ListView.builder(
                      itemCount: 100,
                      itemBuilder: (context,index){
                        return Container(
                          child: Center(
                            child: Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Text("i am $index"),
                            ),
                          ),
                        );
                      }),
                  ListView.builder(
                      itemCount: 5,
                      itemBuilder: (context,index){
                        return Container(
                          child: Center(
                            child: Padding(
                              padding: const EdgeInsets.all(8.0),
                              child: Text("i am $index"),
                            ),
                          ),
                        );
                      })
                ]),
          ),
        ),
      ),
    );
  }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

删除选项卡组的底部边框

创建活动时android底部栏设置默认选项卡

向右拉时如何在Bootstrap动态导航栏选项卡上保留边框底部

如何在R Shiny中将选项卡移动到侧栏的底部?

在Instagram上反应本机底部选项卡栏

如何根据 URL 将活动类从默认选项卡删除到另一个选项卡?

如何更改选项卡栏项目的默认灰色?

如何删除woocommerce选项卡?

如何在Android的操作栏选项卡中删除此气泡(指示灯)?

如何在打开的选项卡上删除导航栏

如何以magento的管理网格形式删除侧边栏选项卡?

如何从 angular 8 中的primeng p-editor 的工具栏中删除选项卡?

删除选项卡栏项目文本,仅显示图像

快速以编程方式删除选项卡栏

如何在选项卡栏上方底部的所有视图控制器中添加通用视图

在不属于react native底部选项卡的屏幕中显示导航底部栏

在情节提要中删除选项卡栏项后无法删除选项卡栏(Swift 4)

如何将边框底部赋予活动选项卡

Xamarin表单:如何在页面底部制作选项卡?

如何在底部设置物化可滑动选项卡?

如何摆脱css选项卡标签中的底部阴影

如何在活动底部选项卡下添加指标?

限制到选项卡控制器中的选项卡栏底部隐藏分页控件

如何双击选项卡栏创建新的选项卡?

如何将元素(不是选项卡)添加到选项卡栏?

Javascript:如何显示默认选项卡内容但隐藏其他选项卡内容

如何使本机反应导航选项卡栏透明

如何从选项卡栏项显示UIImagePickerController

如何刷新Flutter中的选项卡栏?