Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
User interface 颤振选项卡如何从顶部更改为按钮_User Interface_Flutter_Dart_Tabbar - Fatal编程技术网

User interface 颤振选项卡如何从顶部更改为按钮

User interface 颤振选项卡如何从顶部更改为按钮,user-interface,flutter,dart,tabbar,User Interface,Flutter,Dart,Tabbar,我对飞镖是个新手 我有这个问题,我按照指南创建选项卡栏, 但是在顶端,我想要达到的是有一张账单 在底部而不是顶部 我已经尝试过BottomNavigationBar并更改了所有, 但是没有工作,所有的应用程序都崩溃了 请帮帮我谢谢 child: Scaffold( body: DefaultTabController( length: 5, initialIndex: 2, child: Scaffold( appBar: AppB

我对飞镖是个新手

我有这个问题,我按照指南创建选项卡栏, 但是在顶端,我想要达到的是有一张账单 在底部而不是顶部

我已经尝试过BottomNavigationBar并更改了所有, 但是没有工作,所有的应用程序都崩溃了

请帮帮我谢谢

child: Scaffold(
    body: DefaultTabController(
      length: 5,
      initialIndex: 2,
      child: Scaffold(
          appBar: AppBar(
            elevation: 0,
            backgroundColor: primaryColor,
            automaticallyImplyLeading: false,
            title: TabBar(

                labelColor: Colors.white,
                indicatorColor: Colors.white,
                unselectedLabelColor: Colors.black,
                isScrollable: false,
                indicatorSize: TabBarIndicatorSize.label,
                tabs: [
                  Tab(
                    icon: Icon(
                      Icons.person,
                      size: 30,
                    ),
                  ),
                  Tab(
                    icon: Icon(
                      Icons.group,
                    ),
                  ),
                  Tab(
                    icon: Icon(
                      Icons.whatshot,
                    ),
                  ),
                  Tab(
                    icon: Icon(
                      Icons.notifications,
                    ),
                  ),
                  Tab(
                    icon: Icon(
                      Icons.message,
                    ),
                  )
                ]),
          ),
          body: TabBarView(
            children: [
              Center(child: Profile(currentUser)),
              Center(child: Chanels()),
              Center(child: CardPictures(currentUser, users)),
              Center(child: Notifications(currentUser, notification)),
              Center(child: HomeScreen(currentUser, matches)),
            ],
            physics: NeverScrollableScrollPhysics(),
          )),
    ),
  ),

如果你知道如何使用标签栏,那么它对你来说很简单。根据您的需要,您可以以任何方式在任何行列中使用选项卡栏。您只需要为选项卡栏和选项卡栏视图提供控制器,并且无论您如何使用选项卡栏,这两个控制器都必须相同。您可以将选项卡栏放在几乎任何我自己做过的小部件中,并将其放在一行中。

您可以在这一行中使用底部导航栏方法 您需要管理一切,如侦听选项卡事件和相应地呈现页面

原型:


要从上到下更改选项卡栏,我们必须使用TabController自定义颤振中的默认选项卡栏。以下是一个例子:

import "package:flutter/material.dart";
import 'package:hexcolor/hexcolor.dart';

import 'LineChart.dart';
import 'LineChart1.dart';

class PortfolioGraph extends StatefulWidget {
  @override
  _PortfolioGraphState createState() => _PortfolioGraphState();
}

class _PortfolioGraphState extends State<PortfolioGraph> with TickerProviderStateMixin {
  int _currentindex = 0;
  List<Widget> _tabList = [
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),

  ];
  TabController _tabController;
  
  @override
  void initState(){
    super.initState();
    _tabController = TabController(vsync:this,length: 7);
  }
  @override
  void dispose(){
    _tabController.dispose();
    super.dispose();
  }
  
  @override
  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;
    return Container(
      child:Column(
        children: [
          Container(
            height: 270,
            width:size.width,
          child:TabBarView(
                  
                  controller: _tabController,
                  children:_tabList
              ),
          ),

          Container(
      alignment: Alignment.topLeft,
      child: Container(
        height: 50,
        width:size.width,
        child: Container(
          child: Scaffold(
            appBar: AppBar(
              toolbarHeight: 50,
              // leadingWidth: 10,
              backgroundColor: Colors.white,
              elevation: 0,
              titleSpacing: 0,
              centerTitle: false,

              bottom: PreferredSize(
                preferredSize: Size.fromHeight(40),
                child: Align(
                  alignment: Alignment.center,
                  child: TabBar(
                    controller: _tabController,

                    indicatorColor: HexColor("#199C78"),
                    indicatorWeight: 4,
                    unselectedLabelColor: HexColor("#8C8C8C"),
                    labelColor:HexColor("#3A3A3A"),
                    labelPadding: EdgeInsets.only(left: 0, right: 0),
                    labelStyle: TextStyle(fontSize: 14,fontWeight: FontWeight.bold),
                    unselectedLabelStyle: TextStyle(fontSize: 14),
                    isScrollable: false,

                    tabs: [
                      Tab(child:Container(

                        child: Text("1D"),
                      )),

                      Tab(child:Container(

                        child: Text("1W"),
                      )),
                      Tab(child:Container(

                        child: Text("1M"),
                      )),
                      Tab(child:Container(
                        child: Text("3M"),
                      )),
                      // SizedBox(width:10),
                      Tab(child:Container(
                        child: Text("6M"),
                      )),
                      Tab(child:Container(
                        child: Text("1YR"),)),
                      Tab(child:Container(
                        child: Text("All"),))
                    ],
                  ),
                ),
              ),
            ),

          ),
        ),
      ),
    )
        ],
      )
    );
  }
}
import "package:flutter/material.dart";
import 'package:hexcolor/hexcolor.dart';

import 'LineChart.dart';
import 'LineChart1.dart';

class PortfolioGraph extends StatefulWidget {
  @override
  _PortfolioGraphState createState() => _PortfolioGraphState();
}

class _PortfolioGraphState extends State<PortfolioGraph> with TickerProviderStateMixin {
  int _currentindex = 0;
  List<Widget> _tabList = [
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),
    Container(
      alignment: Alignment.bottomCenter,
      child:LineChartSample2()),

  ];
  TabController _tabController;
  
  @override
  void initState(){
    super.initState();
    _tabController = TabController(vsync:this,length: 7);
  }
  @override
  void dispose(){
    _tabController.dispose();
    super.dispose();
  }
  
  @override
  Widget build(BuildContext context) {
    Size size = MediaQuery.of(context).size;
    return Container(
      child:Column(
        children: [
          Container(
            height: 270,
            width:size.width,
          child:TabBarView(
                  
                  controller: _tabController,
                  children:_tabList
              ),
          ),

          Container(
      alignment: Alignment.topLeft,
      child: Container(
        height: 50,
        width:size.width,
        child: Container(
          child: Scaffold(
            appBar: AppBar(
              toolbarHeight: 50,
              // leadingWidth: 10,
              backgroundColor: Colors.white,
              elevation: 0,
              titleSpacing: 0,
              centerTitle: false,

              bottom: PreferredSize(
                preferredSize: Size.fromHeight(40),
                child: Align(
                  alignment: Alignment.center,
                  child: TabBar(
                    controller: _tabController,

                    indicatorColor: HexColor("#199C78"),
                    indicatorWeight: 4,
                    unselectedLabelColor: HexColor("#8C8C8C"),
                    labelColor:HexColor("#3A3A3A"),
                    labelPadding: EdgeInsets.only(left: 0, right: 0),
                    labelStyle: TextStyle(fontSize: 14,fontWeight: FontWeight.bold),
                    unselectedLabelStyle: TextStyle(fontSize: 14),
                    isScrollable: false,

                    tabs: [
                      Tab(child:Container(

                        child: Text("1D"),
                      )),

                      Tab(child:Container(

                        child: Text("1W"),
                      )),
                      Tab(child:Container(

                        child: Text("1M"),
                      )),
                      Tab(child:Container(
                        child: Text("3M"),
                      )),
                      // SizedBox(width:10),
                      Tab(child:Container(
                        child: Text("6M"),
                      )),
                      Tab(child:Container(
                        child: Text("1YR"),)),
                      Tab(child:Container(
                        child: Text("All"),))
                    ],
                  ),
                ),
              ),
            ),

          ),
        ),
      ),
    )
        ],
      )
    );
  }
}