如何以编程方式更改Appbar标题



构建屏幕后,在某些逻辑之后,我需要更改Appbar标题,而无需再次执行build()方法。如何做?

您可以在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,
         ),
       ),
    );
  }
}

在您的州类中写

String title_string = "your_initial_title";

在您的Appbar中写下属性:

title: Text(title_string)

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

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

这对我有用

使用Kotlin用户

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

和java使用此

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

最新更新