CupertinoTabController class

Coordinates tab selection between a CupertinoTabBar and a CupertinoTabScaffold.

The index property is the index of the selected tab. Changing its value updates the actively displayed tab of the CupertinoTabScaffold the CupertinoTabController controls, as well as the currently selected tab item of its CupertinoTabBar.

CupertinoTabController can be used to switch tabs:
class MyCupertinoTabScaffoldPage extends StatefulWidget {
  @override
  _CupertinoTabScaffoldPageState createState() => _CupertinoTabScaffoldPageState();
}

class _CupertinoTabScaffoldPageState extends State<MyCupertinoTabScaffoldPage> {
  final CupertinoTabController _controller = CupertinoTabController();

  @override
  Widget build(BuildContext context) {
    return CupertinoTabScaffold(
      tabBar: CupertinoTabBar(
        items: <BottomNavigationBarItem> [
          // ...
        ],
      ),
      controller: _controller,
      tabBuilder: (BuildContext context, int index) {
        return Center(
          child: CupertinoButton(
            child: const Text('Go to first tab'),
            onPressed: () => _controller.index = 0,
          )
        );
      }
    );
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }
}

See also:

Inheritance

Constructors

CupertinoTabController({int initialIndex: 0 })
Creates a CupertinoTabController to control the tab index of CupertinoTabScaffold and CupertinoTabBar. [...]

Properties

index int
The index of the currently selected tab. [...]
read / write
hashCode int
The hash code for this object. [...]
read-only, inherited
hasListeners bool
Whether any listeners are currently registered. [...]
@protected, read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited

Methods

dispose() → void
Discards any resources used by the object. After this is called, the object is not in a usable state and should be discarded (calls to addListener and removeListener will throw after the object is disposed). [...]
@mustCallSuper, override
addListener(VoidCallback listener) → void
Register a closure to be called when the object changes. [...]
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
notifyListeners() → void
Call all the registered listeners. [...]
@protected, @visibleForTesting, inherited
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes. [...]
inherited
toString() String
Returns a string representation of this object.
inherited

Operators

operator ==(dynamic other) bool
The equality operator. [...]
inherited