flutter - 没有脚手架的 DefaultTabController?

标签 flutter dart flutter-layout

我正在尝试使用 DefaultTabController在一些小部件的中间。所以我的 TabBar不能在 AppBar并且必须关闭一些小部件。
所以我的问题是当我使用 TabBarView 时它崩溃了...

所以这里有一个 Flutter 示例,但没有找到如何在没有 Scaffold 的情况下做到这一点.

final List<Tab> myTabs = <Tab>[
  Tab(text: 'LEFT'),
  Tab(text: 'RIGHT')];

代码
DefaultTabController(
  length: myTabs.length,
  child: Scaffold(
    appBar: TabBar(
      tabs: myTabs,
    ),
    body: TabBarView(
      children: myTabs.map((Tab tab) {
        final String label = tab.text.toLowerCase();
        return Center(
          child: Text(
            'This is the $label tab',
            style: const TextStyle(fontSize: 36),
          ),
        );
      }).toList(),
    ),
  ),
);

这是我应该做的 TabBar 的另一个示例 image

实码
class ProfileTabBarNavigation extends StatelessWidget {
 final List<Tab> myTabs = <Tab>[
   const Tab(text: kArtwork),
   const Tab(text: kPastJobs)];
@override
Widget build(BuildContext context) {
return DefaultTabController(
  length: 2,
  initialIndex: 0,
  child: Padding(
    padding: kPaddingTabBar,
    child: Container(
      padding: EdgeInsets.all(5.0),
      decoration: BoxDecoration(
        color: kLightGrey,
        borderRadius: BorderRadius.all(
          Radius.circular(50),
        ),
      ),
      child: Column(children: <Widget>[
        TabBar(
          tabs: myTabs,
          unselectedLabelColor: Colors.black54,
          labelColor: Colors.black,
          unselectedLabelStyle: kBoldText,
          labelStyle: kBoldText,
          indicatorSize: TabBarIndicatorSize.tab,
          indicator: BoxDecoration(
            shape: BoxShape.rectangle,
            borderRadius: BorderRadius.circular(50),
            color: Colors.white,
          ),
        ),
        TabBarView(
          children: myTabs.map((Tab tab) {
            final String label = tab.text.toLowerCase();
            return Center(
              child: Text(
                'This is the $label tab',
                style: const TextStyle(fontSize: 36),
              ),
            );
          }).toList(),
        ),
      ]),
    ),
  ),
);
}
}

最佳答案

包裹您的 TabBarViewExpanded .

Expanded(
 child: TabBarView(//...),
),

试试看 DartPad

关于flutter - 没有脚手架的 DefaultTabController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60362159/

相关文章:

flutter - 底纸溢出

mobile - 在 pdf 查看器上显示/隐藏选项栏

flutter - 如何居中对齐文本小部件,然后在文本中添加前导图标?

flutter - 如何在 flutter 中使用下拉选择创建表单模式

Flutter 将列中的一个子元素对齐到最右边,其他子元素对齐到中心

firebase - flutter 异步验证表单

flutter - flutter 中溢出了一些凸起的按钮

flutter - 无法从静态方法dart访问实例成员

firebase - 使用电子邮件和密码创建帐户时,Flutter + Firebase updateDisplayName

flutter |如何验证时间选择器