如何在Flutter中设置初始标签

问题描述

here is image for proper idea

我希望每当我运行我的应用程序时,都应将其移至选项卡A,但认情况下,它将移至第一个选项卡,即选项卡B。

import 'package:Flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
          length: 2,child: Scaffold(
            appBar: AppBar(
              title: Text("Tab Bar"),bottom:
                  TabBar(tabs: [Tab(child: Text('B')),Tab(child: Text('A'))]),),body: TabBarView(children: [
              Center(
                child: Text("this is to be second tab"),Center(
                child: Text("this is to be first tab"),]),)),);
  }
}

解决方法

DefaultTabController具有一个initialIndex属性,默认情况下将其设置为0

在您的情况下,由于您有两个Tab,因此需要将initialIndex属性设置为1

我以您的代码为例添加了一个演示:

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: DefaultTabController(
          length: 2,// set initial index to 1
          initialIndex: 1,child: Scaffold(
            appBar: AppBar(
              title: Text("Tab Bar"),bottom:
                  TabBar(tabs: [Tab(child: Text('B')),Tab(child: Text('A'))]),),body: TabBarView(children: [
              Center(
                child: Text("this is to be second tab"),Center(
                child: Text("this is to be first tab"),]),)),);
  }
}