在其他页面上颤抖地更改主应用栏标题

Rob*_*ert 3 dart flutter

寻找有关title在后续页面上更改AppBar的帮助,所以我是制表符,而有些则不是。 MyApp在我的应用程序的身份验证页面上定义。然后我转到保存的标签一个新的页面,然后我还有其他的网页了一些标签页中,我希望能够做的是,而不是把另一AppBar下的主要原因之一,我只是想改变titleAppBar我在其他任何页面上时都处于主要状态。

关于如何执行此操作的任何想法,我看到一个不合适的示例,因为我的选项卡设置不同并且无法使其合适,我想也许有一种最初定义标题的方法,以便我可以更改状态或其他内容并更改标题。

有任何想法或想法吗?

azi*_*iza 6

您可以添加TabController和添加一个,listen以便setStateTabs 之间切换时进行调用,并相应地更改AppBar标题。

在此处输入图片说明

import "package:flutter/material.dart";

void main(){
  runApp(new MaterialApp(home:new MyApp(),
  ));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => new _MyAppState();
}

class _MyAppState extends State<MyApp> with TickerProviderStateMixin{
  final List<MyTabs> _tabs = [new MyTabs(title: "Teal",color: Colors.teal[200]),
  new MyTabs(title: "Orange",color: Colors.orange[200])
  ];
  MyTabs _myHandler ;
  TabController _controller ;
  void initState() {
    super.initState();
    _controller = new TabController(length: 2, vsync: this);
    _myHandler = _tabs[0];
    _controller.addListener(_handleSelected);
  }
  void _handleSelected() {
    setState(() {
       _myHandler= _tabs[_controller.index];
    });
  }
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      appBar: new AppBar(title: new Text(_myHandler.title),
        backgroundColor: _myHandler.color,
        bottom: new TabBar(
            controller: _controller,
            tabs: <Tab>[
              new Tab(text: _tabs[0].title,),
              new Tab(text: _tabs[1].title,)
            ],
      ),),
    );
  }
}

class MyTabs {
  final String title;
  final Color color;
  MyTabs({this.title,this.color});
}
Run Code Online (Sandbox Code Playgroud)

  • 你的架构可能有问题。你不应该有一个全局的 appBar。一条路,一个脚手架。这意味着您将拥有一个适用于所有路线的独特应用栏。我们需要一个*真实*的例子来帮助你进一步 (3认同)