如何以编程方式更改AppBar标题?

时间:2019-03-22 05:14:44

标签: flutter

一旦构建了屏幕,然后经过某种逻辑后我就需要更改AppBar标题,而无需再次执行build()方法。该怎么做?

3 个答案:

答案 0 :(得分:1)

您可以在StatefulWidget中调用setState()方法并更改AppBar的标题。这是您可以做到的方式:

class HomePage extends StatefulWidget {
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String appBarTitle = "Title1";
  void changeTitle(){
    setState(() {
      appBarTitle = appBarTitle=="Title1"?"Title2":"Title1";      
    });
  }
  @override
  Widget build(BuildContext context) {
    return Container(
       child: Scaffold(
         appBar: AppBar(
           title: Text(appBarTitle),
         ),
         floatingActionButton: FloatingActionButton(
           onPressed: changeTitle,
         ),
       ),
    );
  }
}

答案 1 :(得分:1)

在您的州立课堂上写

String title_string = "your_initial_title";

在您的应用栏中,输入属性:

title: Text(title_string)

现在,只要您想更改标题,就写:

setState((){
   title_string = "your_new_title";
});

答案 2 :(得分:-2)

这对我有用

由Kotlin用户使用

(requireActivity() as MainActivity).supportActionBar?.title = "New title"

对于Java,请使用此

(( MainActivity) requireActivity()).getSupportActionBar().setTitle("New title");